Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1

    Upload e visualizzazione immagine presa dal db

    Ciao a tutti.
    Come ho gia detto in un altro topic (qui) salvo nel db un'immagine in un campo blob. Salvo l'immagine e non il link di dove andarla a pescare nel db.

    Ora le immagini le vedo, quindi quel problema è risolto. Ma le immagini che vedo sono quelle che ho caricato con phpmyadmin dritto in tabella.
    Ora invece mi son fatto un form per l'upload, quindi devo gestirmi l'upload dell'immagine (più altri campi descrittivi) e quando visualizzo l'elenco, chiaramente voglio vedere l'immagine.

    Il mio problema sta nel fatto che le immagini che carico con il form che ho fatto non le vedo.
    Non penso che il problema sia nella visualizzazione delle immagini, quando stia quando salvo l'immagine nel db.

    Vi posto il codice:

    pagina che visualizza tutte le immagini e gli altri campi:
    Codice PHP:
    $query="SELECT id, ext, descrizione, rif FROM centrale_file WHERE flag=0 ORDER BY ext ASC";
                if (!
    $resultmysql_db_query($db_name$query$db_link))
        print(
    "non funziona la $query".mysql_error());

    while (list(
    $id_ext$ext$descrizione$rif) = mysql_fetch_array($result))
        {
        echo(
    "<tr id=\"$id_ext\" class=\"elenco\">");
        echo(
    "<td align=\"left\">".$ext."</td>");
        echo(
    "<td align=\"left\">".$descrizione."</td>");
        echo(
    "<td align=\"center\"><img src=\"planner/img.php?id=$rif\" $img_mod></td>");
        echo(
    "</tr>");
        } 
    pagina form di upload:
    Codice PHP:
    echo("<tr>");
    echo(
    "<td>[b]Estensione*[/b]</td>");
    echo(
    "<td><input class=obbligatorio type=text name=ext id=ext value=\"$ext\"></td>");
    echo(
    "</tr>");

    echo(
    "<tr>");
    echo(
    "<td>[b]Tipo[/b]</td>");
    echo(
    "<td><input class=text type=text name=\"descrizione\" value=\"$descrizione\"></td>");
    echo(
    "</tr>");
        
    echo(
    "<tr>");
    echo(
    "<td>[b]Immagine[/b]</td>");
    echo(
    "<td><input class=\"text_box\" type=\"file\" name=\"immagine\" size=\"40\"></td>");
    echo(
    "</tr>"); 
    pagina che salva nel db (ed è qui che per me sta il problema
    Codice PHP:
    $filesize 0;
    $error 0;
    $maxfilesize upload_max_filesize();
    if(
    is_uploaded_file($_FILES['immagine']['tmp_name']))
        {
        
    $filetype $_FILES["immagine"]["type"];
        
    $filename $_FILES["immagine"]["name"];
        
    $tmpname $_FILES["immagine"]["tmp_name"];
        
    $filesize $_FILES["immagine"]["size"];
        
    $error $_FILES["immagine"]["error"];
        }
    if(
    $filesize <= $maxfilesize AND $error == 0)
        {
        if(
    is_uploaded_file($_FILES['immagine']['tmp_name']))
            {
            
    $buffer '';
            
    $fp fopen($tmpname,"r");
            if(
    $fp != false)
                {
                
    $buffer fread($fp$filesize);
                
    fclose($fp);
                }
            
    //ecco la riga che per me crea il problema
            
    $filecontent"CAST(0x".bin2hex($buffer)." AS BINARY)";
            }
        }

    $insert "INSERT INTO centrale_file_tipo (mime, img_name, img) VALUES ('".$filetype."', '".$filename."', '".$filecontent."')";
        if(!
    $result mysql_db_query($db_name$insert$db_link))
        print (
    "non funziona la $insert".mysql_error());
                
    $insert "INSERT INTO centrale_file (ext, descrizione, rif) VALUES ('$ext', '$descrizione', '".mysql_insert_id()."')";
        if(!
    $result mysql_db_query($db_name$insert$db_link))
        print (
    "non funziona la $insert".mysql_error()); 
    pagina che va a prendere l'immagine per poi visualizzarla:
    Codice PHP:
    include "../include/connection.php";
    $id$_GET['id'];

    $query="SELECT mime, img FROM centrale_file_tipo WHERE id = $id";
        if (!
    $resultmysql_db_query($db_name$query$db_link)) 
        print(
    "non funziona la $query".mysql_error()); 
        
    $row mysql_fetch_assoc($result); 
    $img $row['img'];
    if (
    $img=="")
        {
        
    $query="SELECT img FROM centrale_file_tipo WHERE id = 2";
            if (!
    $resultmysql_db_query($db_name$query$db_link)) 
            print(
    "non funziona la $query".mysql_error()); 
            
        
    $row mysql_fetch_assoc($result); 
        
    $img $row['img'];
        }
    header('Content-Type: '.$row['mime'].''); 
    echo 
    $img
    Inoltre, se carico un'immagine di 10kbyte usando questo form, se vado in phpmyadmin la vedo di almeno 20kbyte

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Non capisco cosa cerchi di fare con quel cast e bin2hex... i dati vanno salvati così come sono, l'unica funzione da applicarci prima è mysql_real_escape_string()

  3. #3
    quindi cambio la riga incriminata con

    Codice PHP:
    $filecontentmysql_real_escape_string($buffer); 
    ?

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    esatto

  5. #5
    fatto.

    errori non ne da.
    Ma l'immagine non è visibile. Però non c'è nemmeno l'immagine con la x in centro che non la trova.
    Se evidenzio con il mouse, si vede il posto dove doveva esserci l'immagine, ma in realtà non c'è niente
    Questo succede con FireFox. Con explorer invece mi mette un quadrato vuoto

    e ho notato ora che il file mi raddoppi lo stesso di dimensione nel db. Ho messo un'immagine da 83kbyte e phpmyadmin mi dice che li c'è un campo che occupa 163.7kbyte.
    E' normale questo?

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    che succede se richiami dal browser direttamente il file con l'immagine?

  7. #7
    ammetto che questa cosa è divertente....ma non so se ridere o piangere

    scrivo nella barra degli indirizzi: http://localhost/planner/img.php?id=12

    e mi viene fuori una bella pagina bianca con scritto soltanto

    http://localhost/planner/img.php?id=12

  8. #8
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da Sir IMOTEPH
    mi viene fuori una bella pagina bianca con scritto soltanto

    http://localhost/planner/img.php?id=12
    ???
    nella barra dell'indirizzo, spero...

    Quindi la schermata è totalmente vuota? Controllato il sorgente?

  9. #9
    nono non è completamente vuota.

    nella barra degli indirizzi scrivo:
    http://localhost/planner/img.php?id=12

    e mi carica una pagina con chiaramente indirizzo
    http://localhost/planner/img.php?id=12

    e con in alto a sinistra scritto in nero
    http://localhost/planner/img.php?id=12

    come se la pagina contenesse solo l'istruzione
    Codice PHP:
    echo ("http://localhost/planner/img.php?id=12"); 

  10. #10
    no spe, avevo fatto un errore prima e in realtà mysql_real_escape_string($buffer); l'ho messo in un altro file LOL

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.