[PHP - MySQL] Upload di un File

B-enemy

Nuovo Utente
17 Set 2009
4
0
0
Ciao, ho un problema:

Su windows XP ho installato un server web Apache ora facendo degli esperimenti in locale non sono riuscito a far accettare uno script PHP che permetta l'upload di un file all'interno di una cartella del server.
la configurazione del file php.ini mi sembra corretta però quando quando clicco upload il server mi ritorna questo errore:
1024 byte = 1 Kb $dimensione_massima_Kb=$dimensione_massima/1024; $cartella_upload="c:/root/"; //cartella in cui eseguire l'upload (controllare permessi scrittura) // percorso cartella relativo $cartella_upload="../"; $filtrare=1; //filtrare x estensioni ammesse? 1=si 0=no $array_estensioni_ammesse=array('.jpg','.jpeg','.gif','.png'); //estensioni ammesse if(!isset($_FILES['file1']) || $_FILES['file1']['size']==0){ echo "Nessun file selezionato per l'upload"; }elseif($_FILES['file1']['size']>$dimensione_massima){ echo "Il file selezionato per l'upload supera dimensione massima di $dimensione_massima_Kb Kb"; }else{ $nome_file=$_FILES['file1']['name']; $errore=""; if($filtrare==1){ $estensione = strtolower(substr($nome_file, strrpos($nome_file, "."), strlen($nome_file)-strrpos($nome_file, "."))); if(!in_array($estensione,$array_estensioni_ammesse)){ $errore.="Upload file non ammesso. Estensioni ammesse: ".implode(", ",$array_estensioni_ammesse)."
"; } } if(!file_exists($cartella_upload)){ $errore.="La cartella di destinazione non esiste
"; } if($errore==""){ if(move_uploaded_file($_FILES['file1']['tmp_name'], $cartella_upload.$_FILES['file1']['name'])){ chmod($cartella_upload.$_FILES['file1']['name'],0777); //permessi per poterci sovrascrivere/scaricare echo "Operazione eseguita con successo. Upload riuscito."; }else{ echo "Impossibile effettuare l'upload del file"; } }else{ echo $errore; } } ?>

il mio script php è questo:
<?
$dimensione_massima=51200; //dimensione massima consentita per file in byte -> 1024 byte = 1 Kb
$dimensione_massima_Kb=$dimensione_massima/1024;
$cartella_upload="c:/root/"; //cartella in cui eseguire l'upload (controllare permessi scrittura)
// percorso cartella relativo $cartella_upload="../";
$filtrare=1; //filtrare x estensioni ammesse? 1=si 0=no
$array_estensioni_ammesse=array('.jpg','.jpeg','.gif','.png'); //estensioni ammesse

if(!isset($_FILES['file1']) || $_FILES['file1']['size']==0){
echo "Nessun file selezionato per l'upload";
}elseif($_FILES['file1']['size']>$dimensione_massima){
echo "Il file selezionato per l'upload supera dimensione massima di $dimensione_massima_Kb Kb";
}else{
$nome_file=$_FILES['file1']['name'];
$errore="";
if($filtrare==1){
$estensione = strtolower(substr($nome_file, strrpos($nome_file, "."), strlen($nome_file)-strrpos($nome_file, ".")));
if(!in_array($estensione,$array_estensioni_ammesse)){
$errore.="Upload file non ammesso. Estensioni ammesse: ".implode(", ",$array_estensioni_ammesse)."<br/>";
}
}
if(!file_exists($cartella_upload)){
$errore.="La cartella di destinazione non esiste</br>";
}

if($errore==""){
if(move_uploaded_file($_FILES['file1']['tmp_name'], $cartella_upload.$_FILES['file1']['name'])){
chmod($cartella_upload.$_FILES['file1']['name'],0777); //permessi per poterci sovrascrivere/scaricare
echo "Operazione eseguita con successo. Upload riuscito.";
}else{
echo "Impossibile effettuare l'upload del file";
}
}else{
echo $errore;
}
}
?>

chi mi può aiutare a capire cosa mi manca? ho installato PHP 5.3 e Apache 2
 

lotus

Utente Attivo
5 Mag 2009
543
8
0
Non vorrei dire una stupidaggine ma credo che non sia un problema di upload ma più che altro della configurazione di php, sei certo che l'interpreta php sia configurato per accettare
PHP:
<? e non solo <?php
????
 

B-enemy

Nuovo Utente
17 Set 2009
4
0
0
Non hai detto stupidaggini affatto perché mi hai risolto il problema...
Per me era trovare un ago in un pagliaio. Grazie mille Lotus. Il mio dubbio è:
che differenza c'è tra i due TAG "<?" e "<?PHP" pensavo andassero entrambi. Che ci sia qualche modifica che devo fare sul file di configurazione "php.ini" ?

ciao e grazie ancora

Edit:
ora ho un altro problema, quando cerco di uploadare file piccoli allora lo script funziona che è una meravigli, se però provo con file grandi da 50Mb in Su viene inviata la richiesta al server per un po' poi lo script mi ritorna l'erreore "Nessun file selezionato"... Secondo me dal php.ini bisogna modificare qualcosa perché aumenti il tempo per l'elaborazione dello script.
Cosa dovrei modificare ?
 
Ultima modifica:

lotus

Utente Attivo
5 Mag 2009
543
8
0
Ciao... dunque per il punto 1 la direttiva da modificare è "short_open_tag" all'interno del file php.ini
mentre per il punto 2
dovrebbe essere sufficiente modificare "upload_max_filesize" sempre nelk php.ini.. se dovessi avere problemi ci dovrebbero essere altre due voci,
1 per il tempo di esecuzione dello script ed un altra per la dimensione passima dei dati passati tramite post.
A questo indirizzo c'è una descrizione completa ed esaustiva
http://it2.php.net/manual/en/ini.core.php
Spero di esserti stato utile
Ciao, Ciro
 

B-enemy

Nuovo Utente
17 Set 2009
4
0
0
Ciao Lotus e grazie ancora del tuo aiuto, però qui la cosa si complica un po'.
Allora la richiesta al server c'è, ho modificato abbondantemente tutti i parametri del file php.ini per permettere l'upload di file grossi però anche se si noto che il trasferimento sta avvenendo lo script esce prima di completare l'operazione ritornando il messaggio del primo controllo if ("non è stato selezionato alcun file") e questo suona strano...
ho hostato su megaupload il mio file php.ini se per caso vuoi darci un occhiata, magari ho sbagliato qualcosa io :crying:

ht*p://www.megaupload.com/?d=P1ISVGRI
 

lotus

Utente Attivo
5 Mag 2009
543
8
0
ho notato che hai impostato
upload_max_filesize = 20000M
prova a modificare
max_execution_time = 30
con un valore molto più elevato
ed anche
post_max_size = ..


Fai questo tentativo se non va rivediamo anche il codice...
Tuttavia, in verità, mi verrebbe da dirti che l'upload di file così grandi e una configurazione così spinta del php.ini non è per niente sicuro....

...Una persona con un minimo di conoscenze potrebbe impallarti il sistema..
Posso chiederti nello specifico che cosa stai implementando? E' per uso personale o lavorativo? E' accessibile solo dall'intranet o anche da internet?
Fammi sapere
Ciro
 

B-enemy

Nuovo Utente
17 Set 2009
4
0
0
ho modificato così:

upload_max_filesize = 200M
post_max_size = 210M
max_execution_time = 80000
default_socket_timeout = 60000

e ancora lo stesso problema.

Ho una rete privata con 3 PC + PS3 e non accessibile dall'esterno (almeno non per esseri umani come me) conosco in buona parte il C, ma non la programmazione lato server e il PHP lo stò scoprendo adesso e non sono affatto un addetto ai lavori quindi trovare il connubio tra codice e configurazione del server come vedi mi spiazza molto. per pura curiosità e stima per l'idea del codice libero mi sono appassionato alla programmazione e mi piacerebbe arrivare a costruire codice con le mie mani :beer:

ciao
 
Discussioni simili
Autore Titolo Forum Risposte Data
I upload file php / javascript / mysql PHP 0
N problema script php mysql multi upload immagini PHP 31
neo996sps [PHP + MySQL + Server Linux] Upload semi riuscito e query non eseguite PHP 2
Y [PHP/MySQL] Upload PDF PHP 3
P Codifica caratteri speciali mysql php PHP 0
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Ricreare struttura php+mysql su Xampp Apache 0
M Array associativi php su 2 campi mysql PHP 10
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
Z MySql injection PHP PHP 1
D problema php mysql PHP 1
D problema php mysql PHP 1
L Google chart php mysql PHP 2
L Aiuto per programma web php/mySQL PHP 2
S Problemi delle funzioni eliminate con PHP e MySQL PHP 4
C Aiuto compiuto scuola PHP/MySQL PHP 2
G Problema caricamento tabelle MySql da PhP PHP 0
L update tabelle in php mysql [risolto] PHP 6
F Passare una variabile php dal DB mysql alla pagina PHP 3
B Fare calcoli con php da tabella mysql PHP 2
D [MySQL] [PHP] SQL andare da capo MySQL 0
P [OFFRO] Realizzazione siti web in PHP/MYSQL, responsive e Ottimizzati SEO Offerte e Richieste di Lavoro e/o Collaborazione 0
Tommy03 Firebase o PHP+Mysql? Sviluppo app per Android 0
pjtertdj Visualizzazione dati in php da mysql con funzione matematica in javascript PHP 1
E Cerco programmatore PHP/Mysql - retribuito Offerte e Richieste di Lavoro e/o Collaborazione 0
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
Z Gestionale in Php/mysql: Quanto farsi pagare? Aiuto! Discussioni Varie 0
E Inserimento dati da PHP in tabella MySQL PHP 5
R radio input php mysql PHP 2
E Caricare dati da DB MySql all'apertura pagina, meglio PHP o Javascript? PHP 1
giusebos [retribuito] Cercasi programmatore PHP/MySql Offerte e Richieste di Lavoro e/o Collaborazione 1
N Apache + MySQL + PHP MacOs Mojave Web Server 0
T PHP+MYSQL: problema con quelle maledette lettere accentate... PHP 5
K [PHP + MYSQL ] Inserimento dati in database da form dinamico PHP 13
M [PHP] Metodo migliore per fare login a un DB Mysql PHP 1
gandalf1959 problema con la codifica caratteri accentati e speciali tra php e mysql PHP 3
webmachine [PHP][MYSQL] Problema con le SELECT PHP 5
V Creare tabella mysql con php non funziona PHP 1
W Area riservata sicura PHP MySQL PHP 12
G php salvare file in campo blob mysql: massimo 4MB PHP 1
xone [Vendo] Gestionale Magazzino PHP-MYSQL Altri Annunci 0
M Stampare con php e mysql PHP 8
P Importazione dati da file xml in db mysql con php PHP 17
xone [Vendo] Script gestionale php-mysql gestione pratiche Altri Annunci 0
D problemi login php 5.6 mysql PHP 1
T PHP+MYSQL: stampare record con numero progressivo PHP 3

Discussioni simili