PDA

View Full Version : [Smarty-html-php]Problema di visualizare immagini da database tipo BLOB


mister_slave
16-09-2012, 22:05
ho un problema che non riesco a risolvere, riguardo a visualizare file immagine memorizzati su db come long BLOB.

una prima soluzione era di fare un dumpfile sul server e dare il percorso dell'immagine al tag <img> di html.

perņ se volessi visualizzarlo come immagine senza dover salvarlo sul server?

estrai.php

<?php
require_once("./libs.inc.php");
require_once("./session.php"); // qui fa la connect al db ecc.

$ipath='c:/wamp/www/e-commerce/immagine.jpg';

$query = "SELECT image FROM prodotto WHERE pid=2 INTO DUMPFILE $ipath' "; //estrae la immagine e la salva

$result = mysql_query($query);




$row = mysql_fetch_array($result);
$img=$row[0];


$smarty->assign("p","$ipath");
$smarty->assign("i","$img");
$smarty->display("estraifoto.tpl");
?>



estraifoto.tlp

{$i} //mi restituisce una serie di caratteri idecifrabile

<img src "./immagine.jpg"/> // visualizza correttamente l'immagine, perņ devo salvare la foto su una cartella.

mister_slave
29-09-2012, 20:21
up

VICIUS
30-09-2012, 17:53
Come stai facendo ora non si puņ. Se scrivi il contenuto del file immagine direttamente nel HTML questo viene interpretato come testo e ti mostra tutti quei caratteri strani che hai visto.

Io procederei in questo modo:
nel template html usa il tag img per richiamare uno script a cui passi il nome del file da mostrare.
<img src="immagine.php?file={$nome_immagine}" />
nel file immagine.php devi: cercare nel db il file con il nome richiesto, leggere il contenuto del blob e poi fare una echo del contenuto.

DanieleC88
08-10-2012, 22:43
...ed impostare i giusti header HTTP. (Content-Type e compagnia cantante.)