- Home
- Categorie
- Coding e Sistemistica
- PHP
- Upload file e creazione cartella
-
Upload file e creazione cartella
Salve a tutti,
vorrei risolvere un problemino, ossia fare l'upload ma allo stesso tempo creare anche una cartella in md5 dove andra il file o i files, ora nel mio script sto usando questo:move_uploaded_file($_FILES['photoupload']['tmp_name'], "./uploadedfiles/".$_FILES['photoupload']['name']); chmod("./uploadedfiles/".$_FILES['photoupload']['name'], 0777);
....che ovviamente invia solo il file dal form, ma come si potrebbe estendere la funzione per l'appunto creare anche una cartella univoca dove andrà il suddetto file?
Grazie anticipatamente a tutti ciao Peter
-
Prova con
$dir_name_file = $FILES['photo_upload']['name']."".sha1(md5(uniqid(rand().$_FILES['photo_upload']['name'],true)));
mkdir($dir_name_file,0777);
move_uploaded_file($_FILES['photoupload']['tmp_name'], "./uploadedfiles/".$dir_file_name);
-
Quasi perfetto!!!...solo che mi crea la cartella tipo questa: _f540fb2b053b40cebf0d96f05e92415b5619e400 ma all'interno non è presente il file!
-
...ho notato che la cartella creata ha permessi 755 e non 777
-
..cosi crea la cartella con permessi 777
$dir_name_file = $FILES['photo_upload']['name']."".sha1(md5(uniqid(rand().$_FILES['photo_upload']['name'],true)));
mkdir($dir_name_file, 0777);
chmod($dir_name_file, 0777);
move_uploaded_file($_FILES['photoupload']['tmp_name'], "./uploadedfiles/".$_FILES['photoupload']['name']);
chmod("./uploadedfiles/".$_FILES['photoupload']['name'], 0777);ora pero sempre il problema che non mi inserisce dentro il file!!!
-
[php] $dir_name_file = $FILES['photo_upload']['name']."".sha1(md5(uniqid(rand().$_FILES['photo_upload']['name'],true)));
mkdir($dir_name_file, 0777);
chmod($dir_name_file, 0777);
move_uploaded_file($_FILES['photoupload']['tmp_name'], "./uploadedfiles/".$dir_name_file."/".$_FILES['photoupload']['name']);
chmod("./uploadedfiles/".$_FILES['photoupload']['name'], 0777);[/php];)
-
....nulla non funziona!!!...
questi i log di Apache:
[Thu Oct 09 14:44:49 2008] [error] [client 192.168.2.2] PHP Notice: Undefined index: photo_upload in /var/www/html/uploaderfile/script.php on line 7
[Thu Oct 09 14:44:49 2008] [error] [client 192.168.2.2] PHP Notice: Undefined index: photo_upload in /var/www/html/uploaderfile/script.php on line 7
[Thu Oct 09 14:44:49 2008] [error] [client 192.168.2.2] PHP Warning: move_uploaded_file(./uploadedfiles/_83319ac3d9a6992be7cf8aebf029924b98420b26/DSCF0378.JPG) [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open stream: No such file or directory in /var/www/html/uploaderfile/script.php on line 10
[Thu Oct 09 14:44:49 2008] [error] [client 192.168.2.2] PHP Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move '/tmp/phpXaND05' to './uploadedfiles/_83319ac3d9a6992be7cf8aebf029924b98420b26/DSCF0378.JPG' in /var/www/html/uploaderfile/script.php on line 10
[Thu Oct 09 14:44:49 2008] [error] [client 192.168.2.2] PHP Warning: chmod() [<a href='function.chmod'>function.chmod</a>]: No such file or directory in /var/www/html/uploaderfile/script.php on line 11..poi vorrei aggiungere un'altra problematica, ossia che dal form posso aggiungere altri file per l'upload e quindi altri cosi detti slot di e lui ovviamente mi crea una cartella per ogni file e non una cartella con tutti i file inviati con un unico invio!!!
-
[php]$dir_name_file = $FILES['photo_upload']['name']."".sha1(md5(uniqid(rand().$_FILES['photo_upload']['name'],true)));
mkdir($dir_name_file, 0777);if(@move_uploaded_file($_FILES['photoupload']['tmp_name'], "./uploadedfiles/".$dir_name_file."/".$_FILES['photoupload']['name']); chmod("./uploadedfiles/".$_FILES['photoupload']['name'])){
echo "Upload Ok!";
}else{
echo "Impossibile terminare l'upload!";
}[/php]
Comunque, il file non viene uploadato correttamente...
se l'immagine si chiama mio.jpg, la cartella dovrebbe essere mio.jpg_9wefy7237g27f(ecc...)..
infatti, endefined index vuol dire che la variabile non esiste...
$_FILES['photoalbum'] non esiste...
-
...ancora nulla
errori Apache:
[Thu Oct 09 15:09:18 2008] [error] [client 192.168.2.2] PHP Notice: Undefined index: photo_upload in /var/www/html/uploaderfile/script.php on line 7
[Thu Oct 09 15:09:18 2008] [error] [client 192.168.2.2] PHP Notice: Undefined index: photo_upload in /var/www/html/uploaderfile/script.php on line 7
[Thu Oct 09 15:09:18 2008] [error] [client 192.168.2.2] PHP Warning: move_uploaded_file(./uploadedfiles/_2c220c0f32f4dd247bad59314a56e286366b3f70/DSCF0404.JPG) [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open stream: No such file or directory in /var/www/html/uploaderfile/script.php on line 10
[Thu Oct 09 15:09:18 2008] [error] [client 192.168.2.2] PHP Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move '/tmp/phpEBRjLO' to './uploadedfiles/_2c220c0f32f4dd247bad59314a56e286366b3f70/DSCF0404.JPG' in /var/www/html/uploaderfile/script.php on line 10
[Thu Oct 09 15:09:18 2008] [error] [client 192.168.2.2] PHP Warning: Wrong parameter count for chmod() in /var/www/html/uploaderfile/script.php on line 12
-
cmq per il momento sto usando questo, anche in md5 e funziona, ossia mi crea la cartella e all'interno il file....il problema è sempre il solito, con un invio multiplo si creano tante cartelle per quanti sono i file inviati......e non una unica cartella con tutti i file dentro!!!
####################################################
<?php
$target = basename( $_FILES['photoupload']['name']);
umask(0);
$md5 = md5_file($_FILES['photoupload']['tmp_name']);
if(!file_exists($md5)) mkdir($md5);
umask(0);
if(move_uploaded_file($_FILES['photoupload']['tmp_name'], $md5 . "/" . $target))
echo "DIR: $md5 ".rawurlencode($target);
else
echo "Sorry, there was a problem uploading your file.";
?>
####################################################
-
uh scusa, errori che non avevo visto :
[PHP][/PHP]$dir_name_file = $FILES['photo_upload']['name']."".sha1(md5(uniqid(rand().$_FILES['photo_upload']['name'],true)));
mkdir($dir_name_file, 0777);move_uploaded_file($_FILES['photoupload']['tmp_name'], "./uploadedfiles/".$dir_name_file."/".$_FILES['photoupload']['name'])or die("Impossibile eseguire l\' upload!");
echo "Upload Ok!";
E comunque, il file non viene inviato!
Undefined index: photo_upload in /var/www/html/uploaderfile/script.php on line 7
No such file or directory in /var/www/html/uploaderfile/script.php on line 10Il file non c'è!!;)
-
infatti anche questo mi da errore:
[Thu Oct 09 15:39:04 2008] [error] [client 192.168.2.2] PHP Notice: Undefined index: photo_upload in /var/www/html/uploaderfile/script.php on line 3
[Thu Oct 09 15:39:04 2008] [error] [client 192.168.2.2] PHP Notice: Undefined index: photo_upload in /var/www/html/uploaderfile/script.php on line 3
[Thu Oct 09 15:39:04 2008] [error] [client 192.168.2.2] PHP Warning: move_uploaded_file(./uploadedfiles/_4d159d07b61720a03f051ba113d88bc1cc3dc48b/DSCF0402.JPG) [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open stream: No such file or directory in /var/www/html/uploaderfile/script.php on line 6
[Thu Oct 09 15:39:04 2008] [error] [client 192.168.2.2] PHP Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move '/tmp/phptd8Ivx' to './uploadedfiles/_4d159d07b61720a03f051ba113d88bc1cc3dc48b/DSCF0402.JPG' in /var/www/html/uploaderfile/script.php on line 6cmq ripeto questo anche se in md5 funziona perfettamente...solo che mi crea una cartella per ogni file che e presente nell'invio del form
<?php
$target = basename( $_FILES['photoupload']['name']);
umask(0);
$md5 = md5_file($_FILES['photoupload']['tmp_name']);
if(!file_exists($md5)) mkdir($md5);
umask(0);
if(move_uploaded_file($_FILES['photoupload']['tmp_name'], $md5 . "/" . $target))
echo "DIR: $md5 ".rawurlencode($target);
else
echo "Sorry, there was a problem uploading your file.";
?>sarebbe auspicabile che mettesse tutto dentro una unica cartella (md5)!!!!