• User

    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 &egrave 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