salve a tutti, mi sto cimentando in php ed ho riscontrato un problema, spero voi siate tanto clementi da potermi aiutare, perchè son certo che è una cavolata
Allora questo è il codice per caricare il file:
<?php
if((!isset($_FILES["file_inviato"])) || ($_FILES["file_inviato"]["error"] != UPLOAD_ERR_OK))
echo "Errore nell'invio del file. Riprova!";
// Connessione e selezione del database
// Verifico eventuali problemi nell'upload del file
if((!isset($_FILES["file_inviato"])) || ($_FILES["file_inviato"]["error"] != UPLOAD_ERR_OK))
echo "Errore nell'invio del file. Riprova!";
// Connessione e selezione del database
$db=mysql_connect("localhost", "", "")
or die("Connessione non riuscita: " . mysql_error());
if(mysql_select_db("immagini",'$db'))
die("Selezione database fallita!");
// 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"];
// 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 = ("INSERT INTO img ('nome','tipo','dati')) (VALUES(
nome = '$nome_file_vero',
tipo = '$tipo_file',
dati = '$dati_file')");
if($result=mysql_query($query))
die("Query non valida: " . mysql_error());
// Messaggio di successo
echo "Memorizzazione del file $nome_file_vero nel database eseguita correttamente!";
?>
dopo la memorizzazione voglio che il file possa essere visualizzato, quindi creo un codice affinchè il file venga estratto dal DB :
<?php
// Connessione e selezione del database
$db=mysql_connect("localhost", "", "")
or die("Connessione non riuscita: " . mysql_error());
if(mysql_select_db("immagini","$db"))
die("Selezione database fallita!");
// Query per ottenere l'elenco dei files
$domanda = ("SELECT dati FROM img")
or die ("mysql_error ()");
if($risultato = mysql_query($domanda))
die("Query non valida: " . mysql_error());
// Se ci sono file nel DB
if(mysql_numrows($risultato))
{
// Estrazione dei risultati e stampa dei links
while ($tmp = mysql_fetch_array($risultato))
{
echo "
<a href=\"open.php?id=$tmp[id]\">$tmp[nome]</a></p>\n";
}
}
else
{
echo "
Nessun file presente nel database</p>";
}
?>
Ora riporto il file estratto in una cartella, con il seguente codice :
<?php
if($_GET['id'] == "")
header("Location: view.php");
// Connessione e selezione del database
mysql_connect("localhost", "", "")
or die("Connessione non riuscita: " . mysql_error());
if(!mysql_select_db("immagino"))
die("Selezione database fallita!");
// Query per recuperare il file
$query = "SELECT * FROM img WHERE id_file = " . $_GET["id"];
$risultato = mysql_query($query)
or die("Query non valida: " . mysql_error());
$tmp = mysql_fetch_array($risultato);
// Invio l'intestazione contenente il tipo MIME del file
header("Content-Type: " . $tmp["tipo"]);
// Invio il contenuto del file
echo $tmp["dati"];
?>
Ovviamente nel DB ho creato la tabella.
Il problema che ho è che dopo aver caricato l'immagine nel db, non riesco a visualizzarla.
La tabella si chiama "img" ed il database "immagini". Mi dice che la foto viene caricata correttamente, però non riesco a visualizzarla. Soluzioni? :S