- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema visualizzazioni img dal databasE
-
Problema visualizzazioni img dal databasE
Ciao a tutti; ho un problema riguardante la visualizzazione di file binari:
Riesco ad inserire correttamente l'img nel database, ma quando vado a visualizzare l'img al posto di essa vedo una serie di numeri e lettere(penso che si tratti del codice esadecimale che vada a costruire l'img) premetto che tutto questo è in locale con server win e php 4.0;
questo è il codice tramite il quale trasferisco l'img:
<?php include 'con.inc.php' ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"> <input type="file" name="upload" /> <input type="text" name="desc" maxlength="255" /> <input type="submit" value="upload"/> </form> <!--Se il file viene realmente trasmesso <?php if(!is_uploaded_file($_FILES['upload']['tmp_name'])){ exit("non hai trasmesso il file");} $uploadfile=$_FILES['upload']['tmp_name']; $uploadname=$_FILES['upload']['name']; $uploadtype=$_FILES['upload']['type']; $uploaddesc=$_POST['desc']; $tempfile=fopen($uploadfile,'rb'); $filedata=fread($tempfile, filesize($uploadfile)); $filedata=addslashes($filedata); $sql="INSERT INTO IMG SET FILENAME='$uploadname', MIMETYPE='$uploadtype', DESCRIPTION='$uploaddesc', FILEDATA='$filedata'"; $ok=@mysql_query($sql); if(!$ok){ exit('errore nella trasmissione del file: ' . mysql_error()); } ?>
e questo è il codice tramite il quale vorrei visualizzare il file(ho messo un id a mano per facilitarmi il compito):
<?php include 'con.inc.php' $id=13; $sql="SELECT FILENAME,MIMETYPE,FILEDATA FROM IMG WHERE ID='$id'"; $result=@mysql_query($sql); if(!$result){exit('database error');} $file=mysql_fetch_array($result); if(!$file){exit('il file non è stato caricato nel database');} $filename=$file['FILENAME']; $mimetype=$file['MIMETYPE']; $filedata = $file['FILEDATA']; header("content-disposition: attachment; filename=$filename"); header("content-type: $mimetype"); header("content-length:".strlen($filedata)); echo $filedata; ?>
Grazie