Toon posts:

[PHP] File upload, welke directory?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik ben bezig met het maken van een file upload script voor het uploaden van images op een site

Nu wil ik de map aangeven waar het image moet komen te staan... hier voor gebruik ik onderstaand code nadat het image is ge-upload in de temporary map:

PHP:
1
copy($_FILES['imagefile']['tmp_name'], "/???");


Hoe kom ik erachter welk path ik moet invullen op de vraagtekens?

Mvg,

Guus

Acties:
  • 0 Henk 'm!

  • LinuX-TUX
  • Registratie: December 2003
  • Laatst online: 22-09 15:34
Wat heb je zelf al zoal gedaan? Naar mijn weten is het het relatieve pad van waar het PHP bestand staat standaard. Als je begint met "/" dan probeerd hij natuurlijk vanaf root filesystem uit te lijnen en te plaatsen. Als je dat wil weten, moet je even de uitvoer van het commando "pwd" laten printen, weet je ook waar je aan toe bent ;)

DUS, copy('/tmp/bestandje','./naastphpbestand'); (omdat ./ netter staat om relatief aan te geven)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb al gekeken met phpinfo() en daar kreeg ik de volgende root dir te zien:

/www/php/students/2004/...etc

Echter toen ik die gebruikte kreeg ik de volgende foutmelding:

Warning: copy(/www/php/students/20032004/.... images/fotos): failed to open stream: No such file or directory in /www/php/students/20032004/..../file_check.php on line 14

Guus

Acties:
  • 0 Henk 'm!

  • dajappie
  • Registratie: Januari 2005
  • Laatst online: 22-09 16:28
De functie move_uploaded_file is hier speciaal voor bedoeld. Het tweede argument (de doellocatie) is overigens de path+bestandsnaam en niet alleen de doeldirectory zodat je meteen de tijdelijke bestandsnaam kan vervangen.

Volledig voorbeeld te vinden op http://nl3.php.net/manual/en/features.file-upload.php

[ Voor 19% gewijzigd door dajappie op 20-01-2005 12:30 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
probeer ik het met het relatieve pad... dus
PHP:
1
copy($_FILES['userfile']['tmp_name'], "/fotos");


dan krijg ik op twee verschillende servers de volgende foutmeldingen:

Warning: copy(/fotos): failed to open stream: Permission denied in /www/php/students/20032004/..../test/file_check.php on line 14

Dit kan idd een beveiliging zijn tegen het uploaden van files op de server via een upload scriptje, echter op de andere server:

Warning: copy(): open_basedir restriction in effect. File(/tmp/phpYWRArk) is not within the allowed path(s): (.) in /mnt/storage2/v/vu/..../html/testmap/file_check.php on line 14

Blijkbaar mag ik niet iets uit de temp map kopieren ergens anders naartoe... kan ik deze tempmap dan niet aanpassen??

Mvg,

Guus

Acties:
  • 0 Henk 'm!

  • dajappie
  • Registratie: Januari 2005
  • Laatst online: 22-09 16:28
Misschien is PHP beperkt tot safe_mode, kan je checken via phpinfo(). Je kan dan sowieso niet via copy maar volgens mij alleen via move_uploaded_file (speciaal hiervoor bedoeld) je geuploade bestanden verplaatsen. Ook moet je doeldirectory geschikt zijn om naar te verplaatsen, misschien beetje experimenteren met chmod().

Wijzigen van de temp-dir is systeemconfiguratie en kan je in dit geval niet aanpassen lijkt me.

[ Voor 14% gewijzigd door dajappie op 20-01-2005 12:37 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het voledige pad aangeven inclusief de filenaam samen met move_uploaded_file werkt.... Het image wordt opgeslagen in de goede directory...

Bedankt!!

Gr Guus

[ Voor 4% gewijzigd door Verwijderd op 20-01-2005 12:41 ]

Pagina: 1