2010-08-16 3 views
0

Я пытаюсь отобразить изображение из базы данных с помощью php, но я получаю только приглашение на скачивание всякий раз, когда я использую или щелкаю ссылку. что я хочу сделать, я хочу отобразить его в веб-браузере. И хотите использовать его в тегах.Как отображать изображения, хранящиеся в базе данных mysql, используя PHP

мой код:

require_once('dbconfig.php'); 
     $cont=mysql_connect($dbhost,$dbuser,$dbpass) or die("Error Connecting the Database"); 
     $seldatabase=mysql_select_db($dbselect,$cont); 
     $insert = "SELECT `p_mime`, `p_name`, `p_size`, `p_data` FROM $dbtbl_reg_details WHERE `id` = $id"; 
     $query = mysql_query($insert); 
     if ($query) 
     { 
      if (mysql_num_rows($query)==1) 
      { 
       $row = mysql_fetch_assoc($query); 
       header("Content-Type: image/png"); 
       header("Content-Length: ". $row['p_size']); 
       header("Content-Disposition: inline; filename=". $row['p_name']); 
       echo $row[p_data]; 
      } 
     else 
     { 
      echo "image with id = ".$id." does not exist"; 
     } 
    } 
    else 
    { 
     echo "query failed, image with id = ".$id." does not exist"; 
    } 

И когда я использую встроенный в Content-Disposition: то веб-страница возвращает ошибку сценария в браузере.

Итак, что я должен сделать, чтобы отображать изображения на веб-страницах при извлечении его из базы данных MySQL

+3

почему вы хотите хранить изображения в базе данных? –

+0

Ссылка: http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay –

ответ

1
if (mysql_num_rows($query)==1) 
{ 
    while(@ob_end_clean()); 

    header("Content-type: image/png"); 
    header("Content-Length: ". $row['p_size']); 
    header("Content-Disposition: attachment; filename=\"{$row['p_name']}\""); 

    die($row[p_data]); 
} 
+0

привет! this ''. $ row ['p_name']. '"' возвращает мне синтаксическую ошибку –

+0

Я отредактировал инструкцию, проверьте ее. –

+0

while (@ob_end_clean); был трюк .. это помогло :) –

0

почему у вас echo hi;?

его, вероятно, вызовет ошибку

, а также добавить выход в конце (чтобы что вы не что-нибудь после эхо)

echo $row[p_data]; 
exit; 
+0

привет, я удалил это эхо-привет и сделал Content-Disposition: toline .. теперь получил ошибку «Изображение« http://127.0.0.1/isc2011/photo.php?id=2 »невозможно отобразить, потому что оно содержит ошибки». Я правильно загрузил файл, что может быть причиной !? –

Смежные вопросы