[PHP] problema estrazione immagine da db

ONE313

Nuovo Utente
10 Set 2016
36
2
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:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.041
146
63
PR
www.borgo-italia.it
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\"";
 

ONE313

Nuovo Utente
10 Set 2016
36
2
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"/>'
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.041
146
63
PR
www.borgo-italia.it
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
 

ONE313

Nuovo Utente
10 Set 2016
36
2
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
 

ONE313

Nuovo Utente
10 Set 2016
36
2
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
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.041
146
63
PR
www.borgo-italia.it
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
 

ONE313

Nuovo Utente
10 Set 2016
36
2
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
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.041
146
63
PR
www.borgo-italia.it
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?