[PHP] problema estrazione immagine da db

  • Creatore Discussione Creatore Discussione ONE313
  • Data di inizio Data di inizio

ONE313

Utente Attivo
10 Set 2016
37
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:
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\"";
 
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"/>'
 
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
 
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
 
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
 
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
 
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
 
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?
 

Discussioni simili