Dopo vari tentativi, sono riuscito ad inserire l'immagine nel database in questa maniera:
Codice PHP:
//Esce se il file non è stato scaricato veramente.
if(!is_uploaded_file($_FILES['userfile']['tmp_name'])) {
exit('Non esiste alcun file da caricare!');
}
$uploadfile = $_FILES['userfile']['tmp_name'];
$uploadname = $_FILES['userfile']['name'];
$uploadtype = $_FILES['userfile']['type'];
$uploaddesc = $_POST['desc'];
// Apre il file per la lettura binaria ('rb')
$tempfile = fopen($uploadfile, 'rb');
// Legge l'intero file in memoria usando la funzione di PHP
// filesize, per ottenere la dimensione.
$filedata = fread($tempfile, filesize($uploadfile));
//Prepara l'inserimento nel database aggiungendo i backslash
// prima dei caratteri speciali.
$filedata = addslashes($filedata);
// Crea la query SQL
$queimg = mysqli_query($db, "INSERT INTO immagini SET email = '$username', filename = '$uploadname', mimetype = '$uploadtype', description = '$uploaddesc', filedata = '$filedata'");
e riesco anche a recuperarla tramite questo script
Codice PHP:
$sqlimg = "SELECT filename, mimetype, filedata FROM immagini WHERE email = '$username'";
$imgres = mysqli_query($db, $sqlimg);
if(!$imgres) die ('Errore Database:' . mysqli_error());
$file = mysqli_fetch_array($imgres);
if(!$file) {
exit ('File non trovato');
}
$filename = $file['filename'];
$mimetype = $file['mimetype'];
$filedata = $file['filedata'];
$disposition = 'inline';
if($action == 'dnld')
$disposition = 'attachment';
header("content-disposition: $disposition; filename=$filename");
header("content-type: $mimetype");
header("content-length:" . strlen($filedata));
echo $filedata;
exit();
Unico problema è che scompare tutta la pagina e rimane solo la foto in alto a sinistra su sfondo bianco. Domanda: come faccio ad inserirla nella pagina senza far scomparire tutto? Grazie tante in anticipo.
EDIT: Ora funziona scusate, ho seguito le istruzioni di Alemoppo, ma mi ero dimenticato di inserire il file di connessione al database, sarà l'orario. Grazie ancora.