salve raga ho uno script che mi permette di caricare un file immagine sul db.
ecco il codice:
ho inserito due controlli allo script in aggiunta di quelli presenti, che mi dovrebbero permettere di controllare estensione e dimensione del file....codice:<?php $email = $_POST['email']; // Verifico eventuali problemi nell'upload del file if((!isset($_FILES["file_inviato"])) || ($_FILES["file_inviato"]["error"] != UPLOAD_ERR_OK)) { echo "<table class='bordered' style='margin:30px auto;'> <tr> <td> <center> <img src='http://i.imgur.com/hxvbojK.png' width='300' height='60'> <br><br>Errore nell'invio del file immagine. Hai dimenticato ad inserirlo o l'estensione del file inserito non è supportata!<br><br><a href='http://sitoprova.96.lt/login.php'>Torna alla pagina di accesso</a></center></td></tr></table>"; } elseif ($email == ""){ echo "<table class='bordered' style='margin:30px auto;'> <tr> <td> <center> <img src='http://i.imgur.com/hxvbojK.png' width='300' height='60'> <br><br>Non lasciare vuoto il campo e-mail<br><br><a href='http://sitoprova.96.lt/login.php'>Torna alla pagina di accesso</a></center></td></tr></table>"; } else { mysql_connect("xxx", "xxx", "xxxx") or die(mysql_error()); mysql_select_db("xxxx") or die(mysql_error()); $sqlquery = "SELECT email FROM users WHERE email = '".$email."'"; $result = mysql_query($sqlquery); if (mysql_num_rows($result) == "0"){ echo "<table class='bordered' style='margin:30px auto;'> <tr> <td> <center> <img src='http://i.imgur.com/hxvbojK.png' width='300' height='60'> <br><br>L'e-mail inserita non esiste<br><br><a href='http://sitoprova.96.lt/login.php'>Torna alla pagina di accesso</a></center></td></tr></table>"; }else{ // settiamo un array in cui indichiamo il tipo di file che consentiamo l'upload // in questo esempio solo immagini $exploded = explode('.',$_FILES['image']['name']); $file_ext=strtolower(end($exploded)); $tipi_consentiti = array("gif","png","jpeg","jpg"); // settiamo la dimensione massima del file (1048576 byte = 1Mb) $max_byte = 1048576; // Recupero delle informazioni sul file inviato $nome_file_temporaneo = $_FILES["file_inviato"]["tmp_name"]; $nome_file_vero = $_FILES["file_inviato"]["name"]; $tipo_file = $_FILES["file_inviato"]["type"]; $dimensione_file = $_FILES["file_inviato"]["size"]; // verifichiamo che il tipo è fra quelli consentiti if(in_array($file_ext,$tipi_consentiti) === false) { echo "<table class='bordered' style='margin:30px auto;'> <tr> <td> <center> <img src='http://i.imgur.com/hxvbojK.png' width='300' height='60'> <br><br>Il formato del file che si desidera caricare non è fra i tipi consentiti!<br><br><a href='http://sitoprova.96.lt/login.php'>Torna alla pagina di accesso</a></center></td></tr></table>"; } // verifichiamo che la dimensione del file non eccede quella massima else if($_FILES["file_inviato"]["size"] > $max_byte) { echo "<table class='bordered' style='margin:30px auto;'> <tr> <td> <center> <img src='http://i.imgur.com/hxvbojK.png' width='300' height='60'> <br><br>Il dimensione del file che si desidera caricare supera la dimensione massima consentita!<br><br><a href='http://sitoprova.96.lt/login.php'>Torna alla pagina di accesso</a></center></td></tr></table>"; } else { // Leggo il contenuto del file $dati_file = file_get_contents($nome_file_temporaneo); // Preparo il contenuto del file per la query sql $dati_file = addslashes($dati_file); // Query per inserire il file nel DB $query = "UPDATE users SET nome_img = '$nome_file_vero', tipo_img = '$tipo_file', img = '$dati_file' WHERE email='$email' "; mysql_query($query) or die("Query non valida: " . mysql_error()); // Messaggio di successo echo "<table class='bordered' style='margin:30px auto;'> <tr> <td> <center> <img src='http://i.imgur.com/hxvbojK.png' width='300' height='60'> <br><br>Immagine <b>$nome_file_vero</b> inserita correttamente!<br><br><a href='http://sitoprova.96.lt/login.php'>Torna alla pagina di accesso</a> </center></td></tr></table>"; } } } ?>
il problema adesso è che qualsiasi file provo io a inserire nel db mi salta fuori l echo per l estensione non supportata..gli altri controlli comunque continuano a funzionare..lo script si ferma a quell echo...senza questi 2 controlli aggiunti lo script va alla grande...quale potrebbe essere il problema ?codice:// settiamo un array in cui indichiamo il tipo di file che consentiamo l'upload // in questo esempio solo immagini $exploded = explode('.',$_FILES['image']['name']); $file_ext=strtolower(end($exploded)); $tipi_consentiti = array("gif","png","jpeg","jpg"); // settiamo la dimensione massima del file (1048576 byte = 1Mb) $max_byte = 1048576; // Recupero delle informazioni sul file inviato $nome_file_temporaneo = $_FILES["file_inviato"]["tmp_name"]; $nome_file_vero = $_FILES["file_inviato"]["name"]; $tipo_file = $_FILES["file_inviato"]["type"]; $dimensione_file = $_FILES["file_inviato"]["size"]; // verifichiamo che il tipo è fra quelli consentiti if(in_array($file_ext,$tipi_consentiti) === false) { echo "<table class='bordered' style='margin:30px auto;'> <tr> <td> <center> <img src='http://i.imgur.com/hxvbojK.png' width='300' height='60'> <br><br>Il formato del file che si desidera caricare non è fra i tipi consentiti!<br><br><a href='http://sitoprova.96.lt/login.php'>Torna alla pagina di accesso</a></center></td></tr></table>"; } // verifichiamo che la dimensione del file non eccede quella massima else if($_FILES["file_inviato"]["size"] > $max_byte) { echo "<table class='bordered' style='margin:30px auto;'> <tr> <td> <center> <img src='http://i.imgur.com/hxvbojK.png' width='300' height='60'> <br><br>Il dimensione del file che si desidera caricare supera la dimensione massima consentita!<br><br><a href='http://sitoprova.96.lt/login.php'>Torna alla pagina di accesso</a></center></td></tr></table>"; } else {![]()

Rispondi quotando