salve raga ho uno script che mi permette di caricare un file immagine sul db.
ecco il codice:
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>";
}
}
}
?>
ho inserito due controlli allo script in aggiunta di quelli presenti, che mi dovrebbero permettere di controllare estensione e dimensione del file....
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 {
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 ?