|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 926
|
[PHP] Caricare un file in memoria ($_FILES) si può fare??? HELP
Ciao a tutti,
sto cercando di modificare l'upload di una galleria foto . Voglio fare l'upload delle foto contenute in una cartella che si trova già sul server. Il problema è questo: la funzione della galleria permette l'upload da file del disco con il form quindi input type=file . tasto sfoglia e caricamento del file .. In questo modo viene istanziato l'oggetto $_FILES che memorizza temporaneamente il file sul server. per poi metterlo nel posto in cui deve stare con un'altra funzione.. * $_FILES["file"]["name"] - the name of the uploaded file * $_FILES["file"]["type"] - the type of the uploaded file * $_FILES["file"]["size"] - the size in bytes of the uploaded file * $_FILES["file"]["tmp_name"] - the name of the temporary copy of the file stored on the server * $_FILES["file"]["error"] - the error code resulting from the file upload dove "file" è il tag name dell'input di tipo file della form Quello che vorrei fare è istanziare lo stesso oggetto ma da un file presente sull'host tramite url .. In questo modo potrei fare un ciclo di tutti i file della cartella sull'host . e uno per uno istanziarli in $_FILES e richiamare add_picture della galleria. In modo da non toccare nulla... Ho cercato in tutti i modi su Google ma niente.. Il problema è questo campo: $_FILES["file"]["tmp_name"] gli altri riesco ad emularli. tmp_name è la path del file temporaneo creato sul server che è una copia del file caricato. è possibile risolvere questo problema?? che dite?? inoltre? se faccio una fopen di un file questo non mi dovrebbe creare una copia in $_FILES. Da quello che ho visto no.. Sono certo che l'upload temporaneo in memoria si possa fare con php .. ho bisogno solo della funzione.. o il modo per farlo.. GRAZIEEEEEE
__________________
Intel COre 2 Duo E5200 2.5Ghz 2Mb - Arctic Cooling Freezer 7PRO PWM 775 - ASROCK 775 P43R1600Twins-110dB - ATI HD4850 Gainward Golden Sample 512MB - DDR2 800Mhz 4GB CORSAIR TWIN2X KIT CL5 rt. (2x2GB) - COOLERMASTER Elite 330 Midi Black - ARCTIC COOLING Fan 12 PWM rt 120x120 - Corsair CMPSU-450VXEU 450W - SEAGATE 500GB ST3500320AS 7200rpm 32MB 7200.11 - DVD-RW Pioneer DVR-216D-BK Nero SATA - ASUS LCD 22" VW222U 2ms |
|
|
|
|
|
#2 | |
|
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
Quote:
La variabile $_FILES viene riempita dal preprocessore prima di eseguire il tuo script quindi i valori ivi presenti sono in sola lettura. Le funzioni PHP come fopen non scrivono sulle variabili globali quindi $_FILES è estranea al comando. Puoi realizzare uno script che esegue un reale upload di tipo type=file realizzando uno script PHP che preleva il file da inviare con fopen e lo uploada sul server di destinazione tramite il comando header. |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 926
|
ma questa variabile cos'è ????
$_FILES["file"]["tmp_name"] - the name of the temporary copy of the file stored on the server stampandolo mi da una cosa del genere: /tmp/phpYIpIfw ma phpYIpIfw è il nome di un file senza estensione? perchè se al posto di /tmp/phpYIpIfw gli do /foto/foto.jpg non funziona???
__________________
Intel COre 2 Duo E5200 2.5Ghz 2Mb - Arctic Cooling Freezer 7PRO PWM 775 - ASROCK 775 P43R1600Twins-110dB - ATI HD4850 Gainward Golden Sample 512MB - DDR2 800Mhz 4GB CORSAIR TWIN2X KIT CL5 rt. (2x2GB) - COOLERMASTER Elite 330 Midi Black - ARCTIC COOLING Fan 12 PWM rt 120x120 - Corsair CMPSU-450VXEU 450W - SEAGATE 500GB ST3500320AS 7200rpm 32MB 7200.11 - DVD-RW Pioneer DVR-216D-BK Nero SATA - ASUS LCD 22" VW222U 2ms |
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
Quando uno script PHP riceve un file in upload, questo file viene caricato sul webserver in una cartella prestabilita (nel tuo caso /tmp) e gli viene assegnato un nome temporaneo (nel tuo caso phpYIpIfw).
La funzione di quella variabile è di farti sapere come e dove è stato salvato il file che hai inviato via upload. Grazie ad essa puoi lavorare sul file che di solito si prende e si sposta nella directory finale rinominandolo col nome originale tramite la funzione move_uploaded_file(). Ultima modifica di flx2000 : 31-05-2010 alle 12:37. |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 926
|
Quote:
se alla funzione che si aspetta tmp_name gli passo la path del nome di un file già residente in host perchè non va ? non dovrebbe funzionare???
__________________
Intel COre 2 Duo E5200 2.5Ghz 2Mb - Arctic Cooling Freezer 7PRO PWM 775 - ASROCK 775 P43R1600Twins-110dB - ATI HD4850 Gainward Golden Sample 512MB - DDR2 800Mhz 4GB CORSAIR TWIN2X KIT CL5 rt. (2x2GB) - COOLERMASTER Elite 330 Midi Black - ARCTIC COOLING Fan 12 PWM rt 120x120 - Corsair CMPSU-450VXEU 450W - SEAGATE 500GB ST3500320AS 7200rpm 32MB 7200.11 - DVD-RW Pioneer DVR-216D-BK Nero SATA - ASUS LCD 22" VW222U 2ms |
|
|
|
|
|
|
#6 | |
|
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
Quote:
Comunque sì, è la path del file temporaneo che contiene il file trasferito con l'upload. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:14.




















