Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hình ảnh từ cơ sở dữ liệu MySQL không in

Đó là bởi vì trình duyệt của bạn không nhận ra rằng dữ liệu bạn đang gửi lại là một hình ảnh. Khi máy chủ web của bạn phản hồi một yêu cầu, nó đã chỉ định loại nội dung (do đó là tiêu đề Loại-Nội dung) và trang của bạn đang được chỉ định dưới dạng văn bản. Đây là lý do tại sao thẻ hình ảnh được sử dụng:chúng cho bạn cơ hội để nói "nhúng tài nguyên khác này vào vị trí này". Những gì mã của bạn làm là kết xuất dữ liệu nhị phân của hình ảnh dưới dạng văn bản trên màn hình - không phải những gì bạn muốn.

Những gì bạn cần làm là tạo một trang PHP khác, chẳng hạn như getImage.php, chấp nhận một tham số $ _GET (tức là một id hàng). Trang đó sau đó sẽ truy vấn cơ sở dữ liệu và echo dữ liệu hình ảnh, chỉ định tiêu đề Loại-Nội dung.

Dưới đây là một số bằng chứng về mã khái niệm mà tôi đã viết mà không cần thử nghiệm và điều đó không xử lý việc đưa vào SQL hoặc một số vấn đề tiềm ẩn khác.

header('Content-Type: image/png'); //change to the proper content type for your type of image

$imageID = mysql_real_escape_string($_GET['q']);

$result = mysql_query(sprintf('SELECT file_data FROM images2 WHERE id="%s" AND file_data IS NOT NULL LIMIT 1', $_GET['q']));

if(mysql_num_rows($result) !== 1)
{
  //a row wasn't found, so 404
  header('HTTP/1.0 404 File Not Found');
}
else
{
  $row = mysql_fetch_object($result);
  echo $row['file_data'];
}

Bây giờ, khi bạn đang xây dựng HTML trong tệp hiện có của mình, bạn sẽ làm như sau:

echo '<td class="sitename2"><img src="./getImage.php?q='.$row["id"].'"/></td>';

Điều chỉnh tên cột SQL của bạn cho phù hợp.

Chúc mừng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đường dẫn tuyệt đối của Flowfile Nifi

  2. Làm thế nào để thay đổi đối chiếu của cơ sở dữ liệu, bảng, cột?

  3. Làm cách nào để ngăn chặn việc sử dụng các chữ số trong cột VARCHAR bằng cách sử dụng mysql?

  4. Chuyển kết quả cơ sở dữ liệu thành mảng

  5. lỗi wamp / php Lỗi nghiêm trọng:Không tìm thấy lớp 'mysqli_connect' trong C:\ wamp \ www \ finalproject \ Connections \ Main_DB.php trên dòng 9