[PHP] move_uploaded_file probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig mijn scripts aan te passen zodat ze in safe mode werken en ik heb een probleempje met het uploaden van files. Op zich is deze verandering genoeg om het script te laten werken:

PHP:
1
2
3
4
5
//oud:
copy($plaatje, $destination . $name . "." . $extensie);

//nieuw:
move_uploaded_file($plaatje, $destination . $name . "." . $extensie);


Dit gaat goed, maar het probleem is dat met de "copy" functie de temp file blijft staan en met de "move_uploaded_file" functie wordt hij verwijderd. De copy functie kan ik dus meerdere keren achter elkaar aanroepen, maar dat kan met move_uploaded_file niet meer. De vraag is: hoe zet ik een file in de nieuwe situatie in 2 verschillende directories?

Acties:
  • 0 Henk 'm!

Verwijderd

Je zou met fopen() het tijdelijke bestand in kunnen lezen, en deze vervolgens ook weer met fopen() weg te schrijven, waarbij de wegschrijven-stap meerdere keren herhaald wordt.

Disclaimer: Niet getest: het zou kunnen dat je tegen wat basedir-restrictions aanloop :p

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

er is toch een gewone copy functie waar je files mee kan kopieren?

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

Eerst move_uploaded_file naar de juiste "hoofd"-locatie plaatsen en dan die file met COPY kopieren (als met de oude methode)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
COPY werkt zover ik weet niet in safe mode.

edit: misschien toch wel, maar de functie kan niet gebruikt worden bij mijn provider.

[ Voor 52% gewijzigd door Verwijderd op 05-06-2003 08:05 ]


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

dus, even voor de duidelijkheid:
PHP:
1
2
move_uploaded_file ( $source, $destination );
copy ( $destination, $destination2 );
werkt niet? Wat voor foutmelding krijg je dan?

Verder zou je kunnen pogen $destination zelf in te lezen en weg te schrijven met fopen (). Maar ik kan me niet voorstellen dat dat dan wel werkt...

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 05 June 2003 @ 07:51:
COPY werkt zover ik weet niet in safe mode.

edit: misschien toch wel, maar de functie kan niet gebruikt worden bij mijn provider.
Dan zul je twee keer copy_uploaded_file moeten gebruiken, als copy uitgeschakeld is. Maar het is ook mogelijk dat je een foutmelding krijgt die je verteld dat je ownerships niet kloppen ofzo, das een bekend probleem bij php.

Nadat je een handeling verricht hebt is de eigenaar van de files waar je mee werkte de 'apache-user' en je eigen php-scripts zijn nog steeds van 'jezelf'. Met als gevolg dat verdere handelingen op die gekopieerde files ineens niet meer mogen van php. Of dit bij jou het geval is weet ik niet, dan zul je je foutmelding eens moeten laten zien :)
Pagina: 1