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; il database utilizzato è mysql.
questo è il codice tramite il quale trasferisco l'img:
e questo è il codice tramite il quale vorrei visualizzare il file(ho messo un id a mano per facilitarmi il compito):
grazie in anticipo a chi vorrà rispondere
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; il database utilizzato è mysql.
questo è il codice tramite il quale trasferisco l'img:
Codice:
<?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):
Codice:
<?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 in anticipo a chi vorrà rispondere