PDA

View Full Version : [PHP] Upload file fallito!


Lim
08-11-2007, 11:13
Sto sviluppando un sito web che deve consentire l'upload di immagini e la relativa visualizzazione attraverso una galleria.
L'ho implementato in PHP, ma ho vari problemi con l'upload. Mi sono documentato in rete ed ho provato varie tecniche, inizialmente ho gestito l'upload attraverso una connessione in ftp, poi sono passato ad un approccio + semplice, mi sono affidato alla variabile $_FILE[tmp_name], la quale viene poi "spostata" (attraverso la funzione move_uploaded_file) nel percorso che ho deciso io con un nome generato "randomicamente".

Il problema è che in entrambi i casi (mi sembra che con l'FTP l'occorrenza dell'errore fosse + probabile) il file a volte non viene caricato. Per quante volte si provi (anche con immagini diverse per nome e dimensioni fisiche), non c'è modo di fargliele "uppare".
In più, ultimamente mi sono accorto che alcune immagini vengono spostate da move_uploaded_file, ma hanno dimensione 0 e l'esito dell'esecuzione della funzione è positivo (restituisce [I]true, quindi per lo script è andato tutto bene :muro: ).

Quello che mi viene in mente è che potrebbe dipendere dal server e non dal mio script (anche perchè non mi sono inventato nulla, è un classico esempio che si trova in ogni documentazione che tratta di upload).
Potrebbe essere che il server non riesca a processare la richiesta perchè sovraccarico? (lo script consente il caricamento di max 6 immagini alla volta per ogni utente).
Ho interrogato il server ed ho appurato che in realtà è un pò datato (è un P4 3,2GHz). Questo dubbio mi viene anche dal fatto che a volte (troppo spesso secondo me) si blocca anche la pagina di PHPMyAdmin per la gestione del DB MySQL. In quel caso chiudo la pagina ed attendo un paio di minuti, mi "loggo" nuovamente e poi funziona...

Qualcuno ha una idea della causa e delle possibili soluzioni?

P.S. se serve posto anche il codice, ma come dicevo, tutto ruota intorno a move_uploaded_file... (ieri sera ho provato a sostituire tale funzione con copy($file) a cui faccio seguire unlink($_FILE[Image][tmp_name]))

kk3z
08-11-2007, 11:30
prova a mettere un "set_time_limit(0)" nel file che riceve i file

Lim
08-11-2007, 11:35
prova a mettere un "set_time_limit(0)" nel file che riceve i file


Ok, ci provo!

Comunque dalla documentazione risulta che questo comando:
"Imposta il limite massimo in secondi di durata dello script. Se si raggiunge questo limite, lo script viene interrotto con un errore fatale... "

io non ricevo alcun messaggio di errore fatale... è proprio questo il problema, secondo lo script, è andato tutto bene... :muro:

cionci
08-11-2007, 17:34
Ma in locale ti funziona ?

Lim
08-11-2007, 19:41
Ma in locale ti funziona ?

Si funziona anche in locale, ma come dicevo, funziona anche in remoto, è solo che a volte non va...

cionci
08-11-2007, 19:46
Facci un po' vedere il codice...anche se penso che sia proprio come hai detto te. O un qualche crash del server o un problema temporaneo di permessi sui file ;)