Visualizzare immagini caricate in un DB MySQL!! (da tutorial)

schizzechea

Nuovo Utente
6 Mar 2004
29
0
0
48
www.schizzechea.it
Salve a tutti, ho appena finito di testare il Tutorial presente sul sito al seguente indirizzo:
https://www.mrw.it/tutorial/php/tutorial605.htm

La cosa sembra interessante ma ho un problema e chiedo aiuto a coloro che hanno avuto risultati migliori.

L'inserimento dei dati nel database avviene correttamente, il problema sorge quando voglio visualizzare l'immagine memorizzata.

I dati che attualmente riesco a visualizzare, sono i dati grezzi (Binari) inseriti nel campo BLOB del DB MySQL e non l'immagine in quanto tale.

Ho cambiato il Content type come specificato anche nel tutorial non ottenedo alcun risultato....qualcuno sa come funziona???

Ho notato che nel campo TYPE che memorizzo nel DB per una immagine JPG mi inserisce "image/pjpeg", è normale??

NB: So che è possibile memorizzare il percorso delle immagini nel db, è la tecnica che ho utilizzato sempre, adesso sarei interessato a ricavare il meglio da questa tecnica.... ;-)

Grazie!!!!

PS Questo è il codice della mia pagina show.php c'è qualche errore???

Codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" Content-type: "image/jpeg; charset=iso-8859-1" />
<title>Documento senza titolo</title>
</head>

<body>
<?
if (isset($_GET['id']))
{
  $id = @intval($_GET['id']);
  @include 'config.php';
  $sql = "SELECT id,type,immagine FROM immagini WHERE id='$id'";
  $result = @mysql_query($sql) or die(mysql_error ());
  $row = @mysql_fetch_array($result);
  $id_img = $row['id'];
  $type = $row['type'];
  $img = $row['immagine'];
  if (!$id_img)
  {
    echo "Id sconosciuto";
  }else{
    @header ("Content-type: ".$type);
    echo $img;
  }
}else{
  echo "Impossibile soddisfare la richiesta.";
}
?>

</body>
</html>
 

mptech

Utente Attivo
20 Gen 2005
244
0
0
www.mptechnology.it
ciao io uso questo tipo di script:

PHP:
<img src="downloadfile.php?id=<?php echo $row["id"]; ?>"  border="no">

dove l'id equivale all' id dell'immagine che ho salvato e che nella stessa pagina ho richiamato

mentre il file di download:

PHP:
<?php
$blobId=$_GET['id'];
if(!is_numeric($blobId)) 
die("blobId invalido");
include("conn.php");// conn.php contiene i dati per la connessione col database 
$dbQuery = "SELECT id,img,file FROM news WHERE id=$blobId";
$result = mysql_query($dbQuery) or die("File non presenti nel Database"); 
if(mysql_num_rows($result) == 1) 
{ 
$fileType = @mysql_result($result, 0, "file"); 

$fileContent = @mysql_result($result, 0, "img");

header("Content-type: $fileType");  
	   echo $fileContent;
	    } else { echo "non esiste Record."; }
		?>

in questo modo visualizzo l'immagine senza problemi

guarda se ti può interessare

ciao ciao :byebye: :byebye:
 

schizzechea

Nuovo Utente
6 Mar 2004
29
0
0
48
www.schizzechea.it
Grazie per la risposta ma non ci siamo capiti....

il mio problema è che visualizzo i dati grezzi e non l'immagine

Dati grezzi significa qualcosa del genere:
Codice:
õ>}Ëãóv_Ç®î]–î]¯=í×s:“¯m0ÑboÍ6ÅŒªSŒ½*ž :
cé½O…õ½^_¦N&_O H"@ê|›;år´WÍèMåÜz×&¬µ¦ºëËJr#'No?ïøþ“§†üåÑÁêØŒ¨‹`ÓŸDξÞ}‹”^¤xžÿ¯ËõÆ»aÙçHŲëO¤¬öSçVëHŸ>ÛM:¸×çÚ*"@‰$D€`äù]-*æé¹
ËéMêoåÕ7bç>ó]W1Ò‹•\ÊSUy®r=^O_šîz+Òòú Ž-‡³òª³×Ómó'?]ŒmÖ=ÚÚ2ìÚw>‘ã[>Ï/Ùç—ÝvyyÌ< n±8ng.ŽóÒO7|ÙÈcÙvë|Z2¨µ2zþÖÜ^õ™ã~£×æm:PH D€$:Øs>W°

Che sarebbero i dati memorizzati nel campo BLOB del db MySQL.

Con il tuo codice ho esattamente lo stesso problema in quanto non è la visualizzazione in quanto Quety SQL il mio problema ma il risultato della query che non è quello previsto!!!

Credo che il problema sia cn Content Type ma non ho capito come risolverlo.....
Grazie
 

mptech

Utente Attivo
20 Gen 2005
244
0
0
www.mptechnology.it
perch?

io le inserisco senza problemi
PHP:
$immagine = $_FILES['immagine']['tmp_name']; 
$immagine_name1 = $_FILES['immagine']['name'];
$immagine_size1 = $_FILES['immagine']['size']; 
$immagine_type1 = $_FILES['immagine']['type'];

$fileHandle1 = fopen($immagine, "r"); 
$fileContent1 = fread($fileHandle1, $immagine_size1); 
$fileContent1 = addslashes($fileContent1);
 

schizzechea

Nuovo Utente
6 Mar 2004
29
0
0
48
www.schizzechea.it
La tabella tramite codice:

Codice:
$sql = 'CREATE TABLE `immagini` ('
. ' `id` int(11) NOT NULL auto_increment,'
. ' `nome` varchar(50) NOT NULL default "",'
. ' `size` varchar(25) NOT NULL default "",'
. ' `type` varchar(25) NOT NULL default "",'
. ' `immagine` blob NOT NULL,'
. ' PRIMARY KEY (`id`)'
. ' )';

e il database manulamente con il software che uso sempre
DB Tools Manager Professional.

Ho provato anche a fare tutto con il DB manager che manualemnte.....niente!!!
 

mptech

Utente Attivo
20 Gen 2005
244
0
0
www.mptechnology.it
PHP:
CREATE TABLE `prodotti` (
  `id` int(11) NOT NULL auto_increment,
  `testo` longtext NOT NULL,
  `img` blob NOT NULL,
  `file` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`id`)
)
 

schizzechea

Nuovo Utente
6 Mar 2004
29
0
0
48
www.schizzechea.it
...ho capito ma il fatto che nessuno faccia così non significa che il problema non debba essere risolto, se PHP e MYSQL da questa possibilità perchè precludersi la possibilità di farlo anche se nessuno lo fa???

Grazie lo stesso!
 

mptech

Utente Attivo
20 Gen 2005
244
0
0
www.mptechnology.it
codice del form

HTML:
<form action="inserimento.php" method="post" enctype="multipart/form-data">
	<p><br>
	  <span class="style1">inserimento prodotti</span></p>
      <p><span class="style1">descrizione</span><br>
        <textarea cols="40" rows="4" name="desc"></textarea>
      </p>
      <p><input type="file" name="immagine"></p>
	  <input name="invia" type="submit" value="SALVA">
	  </form>

codice ricezione e inserimento
PHP:
$desc=$_POST['desc'];

$immagine = $_FILES['immagine']['tmp_name']; 
$immagine_name1 = $_FILES['immagine']['name'];
$immagine_size1 = $_FILES['immagine']['size']; 
$immagine_type1 = $_FILES['immagine']['type'];

$fileHandle1 = fopen($immagine, "r"); 
$fileContent1 = fread($fileHandle1, $immagine_size1); 
$fileContent1 = addslashes($fileContent1);

include("conn.php");
$query="INSERT INTO prodotti VALUES (0,'$desc','$fileContent1','$immagine_type1')";
mysql_query($query) or die ("impossibile aggiungere i file nel database");

codice di richiamo

PHP:
	    <?php
include("conn.php");
$query="SELECT id,img,testo,file FROM prodotti ";
$result=mysql_query($query) or die ("no file");
while($row=mysql_fetch_array($result))
{
 ?> 
     <br><p> <img src="downloadfile1.php?id=<?php echo $row["id"]; ?>" width="94" height="147" border="no"></p>
	  <p>
	  <form method="post" action="modifica.php?id=<?php echo $row["id"]; ?>">
	    <textarea cols="30" rows="3" name="desc"><?php echo $row["testo"]; ?></textarea><br>
     <input type="submit" value="modifica testo"></p>
	  </form>
	  <form method="post" action="cancella.php?id=<?php echo $row["id"]; ?>"><input type="submit" value="cancella"></form>
	  <form action="modifica1.php?id=<?php echo $row["id"]; ?>" method="post" enctype="multipart/form-data">
	      <p><input type="file" name="immagine"></p>
	  <input name="invia" type="submit" value="modifica immagine">
	  </form>
	  <p>-------------------------------------------------------------------------------</p>
        
        <?php
}?>

io con questo codice non ho mai avuto problema
 

schizzechea

Nuovo Utente
6 Mar 2004
29
0
0
48
www.schizzechea.it
Si, online l'esempio funziona anche se credo debba essere gestita la dimensione massima e/o minima dell'immagine in upload perchè come vedi dal penultimo esempio online l'immagine non viene vsualizzata....

Comunque ho scricato il tuo codice, lo verifico e ti faccio sapere...

Grazie 10000!!!!
:byebye: :byebye:
 

roxpix

Nuovo Utente
27 Ott 2006
1
0
0
dimensione immagini

scusami, come si possono gestire le dimensioni con javascript o con html? potresti farmi un esempio?
grazie
 

alep84

Nuovo Utente
6 Nov 2006
1
0
0
ecco il link dove troverai l'esempio online e i file da scaricare il codice della tabella è al suo interno

http://www.mptechnology.it/prova/index.php

fammi sapere se va bene

:hammer: :hammer: :byebye: :byebye: :byebye:

Ciao Mptech, ho provato il tuo esempio e funziona bene, mi chiedevo se c'è la possibilità di caricare più di un'immagine alla volta.
Ho "duplicato" i campi nella tabella e ho provato a modificare il file inserimento.php con scarsi risultati :hammer:

Se puoi darmi qualche indicazione te ne sarei grato :)

Alla prossima :byebye: :byebye:
 

diabolik05

Nuovo Utente
1 Ago 2010
1
0
0
vorrei visualizzare le immagini nel mio database msql

Salve

Sono un nuovo utente,
Vorrei chiedervi un aiuto
Non riesco a visualizzare tutte le immagini che ho caricato nel database.
Il codice che ho inserito mi visualizza solo una delle immagini
Io invece le vorrei visualizzzare tutte.
ecco il codice:

@require 'config.php';
while ($result21 = mysql_fetch_array($query21))

{
header ("content-type: image/jpeg");
$immagine = $result21["immagine"];
echo "$immagine/n";
}

Dove ho sbagliato ?
 
Discussioni simili
Autore Titolo Forum Risposte Data
C Visualizzare immagini caricate su un Database Classic ASP 1
A Visualizzare div quando le immagini sono state uploadate con successo (Ajax) Ajax 0
M Visualizzare immagini in PHP - MYSQL PHP 0
M Visualizzare immagini da DB in php PHP 0
Y VISUALIZZARE IMMAGINI DA DB PHP/MYSQL PHP 7
M visualizzare tutte le immagini del database PHP 3
E visualizzare automaticamente tutte le immagini di una cartella PHP 1
S urgentissimo necessità di script per evitare di far visualizzare immagini "rubate" Javascript 12
M visualizzare le immagini da db PHP 14
I Visualizzare immagini database PHP 11
D visualizzare immagini da mysql a fianco del titolo PHP 8
P visualizzare immagini da database access Classic ASP 3
G visualizzare immagini dinamiche dentro html PHP 2
0 Visualizzare immagini Javascript 0
C [php/Mysql]Visualizzare immagini PHP 14
D Visualizzare immagini da database ASP.NET 0
H Visualizzare le immagini nei motori HTML e CSS 1
P visualizzare le immagini in locale con F12 HTML e CSS 2
I visualizzare lista utenti registrati PHP 1
N php problemi a visualizzare video PHP 3
P come posso visualizzare l'nvr online IP Cam e Videosorveglianza 1
K Visualizzare del html responsive in una Webview Sviluppo app per Android 0
M Visualizzare ultima data registrata MS Access 2
G Numero zero null non deve visualizzare nulla PHP 0
D visualizzare solo foto filtrate jQuery 1
M Visualizzare nuove domande in base a risposta precedente PHP 0
N Non Autorizzato. Dovresti rimuovere il parametro customize_messenger_channel per visualizzare l'anteprima in frontend. WordPress 1
M visualizzare ip cam in windows IP Cam e Videosorveglianza 0
W visualizzare solo file html e sottocartelle di una cartella PHP 1
napuleone visualizzare il codice senza usare gli & HTML e CSS 1
Y Come caricare e visualizzare un'immagine PHP 0
M Visualizzare file PDF con link preso dal DB PHP 0
Alex_70 Visualizzare 2 bandiere PHP 6
Alex_70 Visualizzare anteprima foto in dropdown PHP 2
L Visualizzare tabella all'interno finestra modal PHP 4
P Visual Studio VB.NET Visualizzare un messaggio alla scadenza. .NET Framework 0
J [PHP] Visualizzare risultato query stessa pagina PHP 3
B visualizzare una sola riga Database 3
Alex_70 [PHP] Visualizzare foto tramite select PHP 0
K [ASP] Visualizzare nome del file selezionato Classic ASP 3
M [PHP] Visualizzare un array partendo dal numero 1 e non 0 PHP 5
L [PHP] Visualizzare utente dopo login PHP 0
L [PHP] Visualizzare se una pagina è pingata PHP 1
M [PHP] Visualizzare nell'alert il calcolo PHP 4
D [WordPress] come fare per estrarre dati da un db MySQL tramite una form e visualizzare il risultato WordPress 0
L come visualizzare array di oggetti php PHP 9
S [PHP] visualizzare commento su un prodotto precedentemente selezionato PHP 2
V [Javascript] Visualizzare o nascondere div figlio Javascript 4
W [PHP] Visualizzare errori su Statements in MySQLi PHP 3
S [javascript] visualizzare/nascondere div Javascript 3

Discussioni simili