[PHP] problema estrazione immagine da db

Discussione in 'PHP' iniziata da ONE313, 23 Novembre 2017.

  1. ONE313

    ONE313 Nuovo Utente

    Registrato:
    10 Settembre 2016
    Messaggi:
    36
    Mi Piace Ricevuti:
    2
    Punteggio:
    8
    Ciao a tutti ho un problema con questo codice che non mi mostra l'immagine. mi esce solo fuori del codice.
    PHP:
    <html>
        <body>

        <form method="post" enctype="multipart/form-data">
        <br/>
        <input type="file" name="image" />
        <br/><br/>
        <input type="submit" name="sumit" value="upload">
        </form>
    <html>
    <head>
    <title>Recuperare i dati da un DB MySQL</title>
    </head>
    <body>
     <?php
    $servername 
    "localhost";
    $username "root";
    $password "";
    $dbname "foto";

    // Create connection
    $conn mysqli_connect($servername$username$password$dbname);
    // Check connection
    if (!$conn) {
        die(
    "Connection failed: " mysqli_connect_error());
    }

    $sql "SELECT id, image,created FROM images";
    $result mysqli_query($conn$sql);

    if (
    mysqli_num_rows($result) > 0) {
        
    // output data of each row
        
    while($row mysqli_fetch_assoc($result)) {
            echo 
    "<img src=".$row["image"].".jpg\" width=\"200px\" height=\"200px\"";

        }
    } else {
        echo 
    "0 results";
    }

    mysqli_close($conn);
    ?>
    </body>
    </html>
     
    Ultima modifica di un moderatore: 24 Novembre 2017
  2. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.029
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    cosa intendi con mi esce solo fuori del codice?
    verifica con un var_dump cosa contiene $row["image"]
    ops accorto dopo
    echo "<img src=\"".$row["image"].".jpg\" width=\"200px\" height=\"200px\"";
     
  3. ONE313

    ONE313 Nuovo Utente

    Registrato:
    10 Settembre 2016
    Messaggi:
    36
    Mi Piace Ricevuti:
    2
    Punteggio:
    8
    Ciao grazie anche in quel modo non cambia niente. Ho trovato la soluzione, ed è quella di mettere una codica dell'immagine
    Codice:
    echo '<img src="data:image/jpeg;base64,'.base64_encode($row['image'] ).'" height="200" width="200"/>'
    
     
  4. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.029
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    scusa, una curiosità
    cosa hai dentro $row['image']?
     
  5. ONE313

    ONE313 Nuovo Utente

    Registrato:
    10 Settembre 2016
    Messaggi:
    36
    Mi Piace Ricevuti:
    2
    Punteggio:
    8
    Richiama un immagine del database
     
  6. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.029
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    quello lo so, intendevo cosa, il nome del file? il nome + il percorso o cos'altro?
    scusa ma è la prima volta che vedo l'uso di encode, nel mio sito richiamo più di 6000 foto e non ne ho mai avuto bisogno
    se invece hai messo tutta l'immagine in un campo blob allora si deve usare header
     
  7. ONE313

    ONE313 Nuovo Utente

    Registrato:
    10 Settembre 2016
    Messaggi:
    36
    Mi Piace Ricevuti:
    2
    Punteggio:
    8
    Ho messo tutta l'immagine nel campo blob.
    E' sbagliato cosi come faccio?
     
  8. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.029
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
  9. ONE313

    ONE313 Nuovo Utente

    Registrato:
    10 Settembre 2016
    Messaggi:
    36
    Mi Piace Ricevuti:
    2
    Punteggio:
    8
    Ciao
    Ok, come faccio io ho (id, img, descrizione) su una riga che richiamo con $row e mi sembra piu facile da gestire.
    Con il tuo metodo non capisco come fai a richiamare un immagine da cartella con il suo nome nel db
     
  10. ONE313

    ONE313 Nuovo Utente

    Registrato:
    10 Settembre 2016
    Messaggi:
    36
    Mi Piace Ricevuti:
    2
    Punteggio:
    8
    Forse ho capito come fai, ho cercato un po in rete. ho trovato che si leggono i dati di invio e poi con una quesy li passi a mysql.
    per richiamarli si fa un echo" del campo desiderato". Dovrei riuscirci. Grazie
     
  11. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.029
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    io faccio come usaulmete si fa nel 99% dei casi:
    1) da un form enctype="multipart/form-data" e un campo $_FILE carico l'immagine
    2) dal $_FILE ricavo i vari dati del file immagine tmp_name, name, type, size
    3) con move_uploaded_file carico il file nella cartella voluta
    4) faccio l'insert in tabella e nel campo, es., chiamato img varchar(50) inserisco il nome del file pinco_pallo.jpg
    5) quando vado a leggere non faccio altro che leggere il campo img (mysqli_fetch_assoc) e mettere il valore letto in <img src="$riga">
    6) evidente indicando il percorso

    il metodo di inserire l'immagine in un campo blob puo servire solo se si devono trattare poche immagini altrimenti il db cresce a dismisura e rendere più difficoltoso a terzi di scaricarsi le immagini

    dimenticavo tutti gli opportuni controlli soprattutto se le immagini possono essere caricate da terzi
     
  12. ONE313

    ONE313 Nuovo Utente

    Registrato:
    10 Settembre 2016
    Messaggi:
    36
    Mi Piace Ricevuti:
    2
    Punteggio:
    8
    Ciao
    OK va bene
    Per le immagini me le possono anche scaricare tanto non c'è problema, per i controlli le inserisco io quindi sono ok anche li.
    Giusto per imparmi anche il codice provo a inserirli lo stesso, tanto saranno quelli di verificare il formato e la dimensione.
    Per quanto riguarda la dimensione del file se non ricordo male bisogna anche modificare il phpinfo per aumentare fino a quanto mi serve che di base mi sembra 2Mb
     
  13. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.029
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    si devi modificare, ma devi anche vedere, se sei in line, se il tuo host permette tale modifica a phpinfo.
    poi domandati ti conviene caricare immagini così grandi?
     
Sto caricando...

Condividi questa Pagina