[PHP] vertraging op uitvoering van unlink()

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Kapoen
  • Registratie: Mei 2002
  • Laatst online: 10:51
In het kader van mijn stageproject moet ik een website maken met content management systeem er bij. Op dit moment ben ik bezig met een mini 'applicatie' om plaatjes te tonen in een opgegeven directory en deze desgewenst te verwijderen.

Het verwijderen van de plaatjes gebeurt met volgend kort scriptje:
PHP:
1
2
3
4
5
6
7
<?php
$target = $_POST['target'];

unlink($target);

header("Location: editDir.php");
?>


Ik doe hier geen controle of dat het bestand werkelijk bestaat, want dit scriptje wordt aangeroepen vanuit een thumbnail viewer die ik gemaakt heb. Als het bestandje daar te zien is dan bestaat het ook werkelijk :).

Na het terugkeren naar de vorige pagina (die met de thumbnail viewer) verschijnt volgende foutmelding:
Warning: getimagesize(./archive/test/inschrijving.jpg) [function.getimagesize]: failed to create stream: Permission denied in D:\intranet\wwwroot\project_dir\imageResizer.php on line 5
Het rare is dat de unlink wel wordt uitgevoerd, maar slechts na een halve minuut. Zolang blijft deze foutmelding dus staan. Is het bestand dan toch fysiek verdwenen, dan is de foutmelding ook weg.

Ik heb ook geprobeerd met het delete() commando te werken, maar dat werd al direct geweigerd door de server als zijnde onbekend.

Zelf denk ik aan 2 mogelijke oorzaken:
- het project draait op een windows omgeving en deze kan niet overweg met de unix manier van file management zoals php dat doet.
- de server bevat (IIS op Win NT 4 met PHP 4.2.x) een instelling die de snelheid kan regelen (wishfull thinking misschien, maar van IIS ken ik echt niets)

beide oorzaken kan ik zelf niet controleren aangezien ik geen sys@ ben in het bedrijf waar ik stage loop (nogal logisch :) ).

Waar kan deze vertraging nog aan liggen, of ben ik misschien helemaal fout bezig?

Clowns to the left of me, Jokers to the right


Acties:
  • 0 Henk 'm!

  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 01-04-2023
Dat het op een windows omgeving draait doet er niets aan af dat unlink gewoon moet werken.

Je zou die header een delay mee kunnen geven dat ie bv na 3 seconden oid pas doorgaat, maar het blijft vreemd dat het zo lang duurt. Misschien een vette load van die server oid?

Ook Knor is aangestoken met het ligfietsvirus!


Acties:
  • 0 Henk 'm!

Verwijderd

Heeft de map wel voldoende rechten om verwijderfuncties uit te voeren?

Dit:[quote]
Warning: getimagesize(./archive/test/inschrijving.jpg) [function.getimagesize]: failed to create stream: Permission denied in D:\intranet\wwwroot\project_dir\imageResizer.php on line 5
[/quote]
Lijkt erop dat de rechten niet goed gezet zijn.

Blech -> vroeg enzo, sorry!

[ Voor 6% gewijzigd door Verwijderd op 09-04-2003 10:15 ]


Acties:
  • 0 Henk 'm!

  • Kapoen
  • Registratie: Mei 2002
  • Laatst online: 10:51
Dat van die delay zal ik eens proberen, maar het wachten zal langer dan 3 seconden moeten zijn dan (ongeveer 30 zoals reeds aangegeven). Ook niet leuk voor de gebruiker denk ik.

Die load op de server zou inderdaad een reden kunnen zijn, ik werk immers op een testserver die niet al te vet is qua hardware. En er draaien ook nog andere projecten op. Ik zal dat eens navragen bij de sys@.

Schrijfrechten zijn er, die heb ik expliciet aangevraagd. Deze heb ik ook trouwens nagekeken in windows en daar staat bij het profiel 'Everyone': read&write,modify,... aangevinkt.

[ Voor 20% gewijzigd door Kapoen op 09-04-2003 10:15 ]

Clowns to the left of me, Jokers to the right


Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 13:17

Basszje

Reisvaap!]

Rotjeknor schreef op 09 april 2003 @ 10:09:
Dat het op een windows omgeving draait doet er niets aan af dat unlink gewoon moet werken.
Dat zou ik niet zo snel zeggen aangezien PHP nog wel eens OS gerelateerde dingetjes anders doet. En aangezien het orgineel allemaal linux / unix based is valt windows vaak sneller buiten de boot. Bij mij doet unlink het echter ook gewoon op windows (2k prof).

Wellicht kan je proberen om ipv IIS Apache eens te proberen :? Hoe draai je PHP trouwens op je IIS , als module of als .exe script dinges :? Daar kan het ook nog aan liggen.

Heb je trouwens ergens ook een linux oid server staan of kan je het daar op testen -> kan je ook altijd proberen :)

Wat is trouwens het path in die target die je doet :?

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

  • Kapoen
  • Registratie: Mei 2002
  • Laatst online: 10:51
Wellicht kan je proberen om ipv IIS Apache eens te proberen Hoe draai je PHP trouwens op je IIS , als module of als .exe script dinges Daar kan het ook nog aan liggen.
Dat zou ik niet weten sorry :/. Apache had ik ook al voorgesteld, maar ze willen niets draaien zonder de nodige support in huis te hebben als ik weg ben.
Heb je trouwens ergens ook een linux oid server staan of kan je het daar op testen -> kan je ook altijd proberen
Wat is trouwens het path in die target die je doet
Een antwoord naar mijn hart :). Jammer genoeg zijn ze hier vrij allergisch aan unix oplossingen. En als simpele stagair kan ik daar niets aan veranderen.

Het path zelf is zo opgebouwd: "./naamvandir/naamvanfile.extensie"
Dit wil zeggen dat het geheel relatief werkt, dit is nodig omdat het project binnekort op de productie server wordt gezet. Dat deze notatie niet helemaal windows style is (met \\ dus) weet ik, maar het probleem blijft anders ook... :/

[ Voor 23% gewijzigd door Kapoen op 09-04-2003 10:20 ]

Clowns to the left of me, Jokers to the right


Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 13:17

Basszje

Reisvaap!]

Kapoen schreef op 09 April 2003 @ 10:18:
[...]
Een antwoord naar mijn hart :). Jammer genoeg zijn ze hier vrij allergisch aan unix oplossingen. En als simpele stagair kan ik daar niets aan veranderen.
In principe zou alles moeten draaien hoor @ win, maar soms heb je nog wel eens rare 'undocumented' verschillen :)
Het path zelf is zo opgebouwd: "./naamvandir/naamvanfile.extensie"
Dit wil zeggen dat het geheel relatief werkt, dit is nodig omdat het project binnekort op de productie server wordt gezet. Dat deze notatie niet helemaal windows style is (met \\ dus) weet ik, maar het probleem blijft anders ook...
Dat is imo juist goed. Met \\ wordt je applicatie gelijk niet meer uitwisselbaar en zorgt bovendien nog voor onnodige vertraging meestal :)

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

  • Kapoen
  • Registratie: Mei 2002
  • Laatst online: 10:51
Zonet te horen gekregen van de sys@ dat de server inderdaad een mager beestje is en dat hier aan zou kunnen liggen. Blijkbaar is dit ook zo voor de productie server :/.

Is die lelijke fout boodschoop niet op te vangen? (met de 'die' syntax of zo?) Dan kan ik tenminste een tekstje zetten in de stijl van 'De foto wordt verwijderd' waar juist ervoor de thumbnail stond.
Ik zou eventueel ook zoals eerder voorgesteld de boel kunnen delayen met een timer, maar dat zal zeker afgekeurd worden door de eindgebruikers.

[ Voor 16% gewijzigd door Kapoen op 09-04-2003 10:42 ]

Clowns to the left of me, Jokers to the right


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
scriptje open openen in een framepje van 1x100% pixels. wat je bovenaan in je frameset zet.

Dan kan je in je gewone frame verder. Desnoods zet je in bovenstaand script nog een js functie dat hij daarna het normale frame weer update, dan krijgen de mensen vanzelf een update als het filetje echt verwijderd is en ze kunnen gewoon blijven doorwerken.

Acties:
  • 0 Henk 'm!

  • Kapoen
  • Registratie: Mei 2002
  • Laatst online: 10:51
Mja dat wordt een beetje moeilijk. Ik werk namelijk niet met frames. Heel mijn site is opgebouwd uit tabellen. (tijdens het eerste jaar van mijn opleiding werd verteld dat het gebruik van frames uit den boze is, echter zonder afdoende verklaring. Onbewust hou ik mij daar echter aan om toch geen frames te gebruiken blijkbaar). Ik zal eens zien of ik het alsnog kan implementeren.

Clowns to the left of me, Jokers to the right


Acties:
  • 0 Henk 'm!

Verwijderd

Is die lelijke fout boodschoop niet op te vangen? (met de 'die' syntax of zo?) Dan kan ik tenminste een tekstje zetten in de stijl van 'De foto wordt verwijderd' waar juist ervoor de thumbnail stond.
Als je zeker weet dat de foto bestaat kan je ook @ voor de unlink zetten (wordt dan dus @unlink) Op die manier onderdruk je de foutmelding, niet echt een nette manier van werken, maar het werkt wel...

[ Voor 41% gewijzigd door Verwijderd op 09-04-2003 11:38 ]


Acties:
  • 0 Henk 'm!

  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 01-04-2023
Het gaat hier niet om de foutmelding, maar om het feit dat het unlinken zo lang duurt... Geen oplossing voor het eigenlijke probleem dus...

Ik denk dat een gesprek cq analyse met de sys@ je meer oplevert dan hier op dit moment...

Ook Knor is aangestoken met het ligfietsvirus!


Acties:
  • 0 Henk 'm!

  • Kapoen
  • Registratie: Mei 2002
  • Laatst online: 10:51
Rotjeknor schreef op 09 April 2003 @ 11:32:
Het gaat hier niet om de foutmelding, maar om het feit dat het unlinken zo lang duurt... Geen oplossing voor het eigenlijke probleem dus...

Ik denk dat een gesprek cq analyse met de sys@ je meer oplevert dan hier op dit moment...
Inderdaad, daarnet even een gesprek gehad. Conclusie: hij is ook gebonden aan wat het bedrijf hem oplegd. Op dit moment draait heel hun intranet op die productie server. Die gaan ze echt niet aanpassen om het project van een stagair te draaien. (Ook al is dat project in het kader van een Human Rescources opdracht).

Clowns to the left of me, Jokers to the right

Pagina: 1