1) Tùy chọn Base64
Làm việc với một dòng duy nhất, image/png
cho hình ảnh png và image/jpeg
cho một jpg một:
echo '<img src="data:image/png;base64,'.base64_encode($blob).'"/>';
ví dụ:
<div style="background-color:black; text-align:center; padding: 5px;">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAwBAMAAACh2TSJAAAALVBMVEUAAADtNTX////3n5/+9fX719f7zMz5tLTzfHzuQED//f31jY3ybGzxXV3wVFRaxp+rAAAAAXRSTlMAQObYZgAAALVJREFUOMut0rENAjEQRNHdC4kY0QBaAQUQX0QAFSAKIKQEKiAA6VqgIkriApuV1x7pQPz0aWwHljLMpZ0CRDBGoXmeghGYKFJsUo90giAImCgV5OJF+oOgKE48MlGgs2VLBIunWesw0a1ZHqF82c7GmmIfUSpgotOly29DFPFJFDEhkgIT/V5mZuvj6XofKrHU6vyI4u37IYi36aN4h5tL7PJyif1dvCgEpapzISbCTEj5R78BZq5A5Ldh2XYAAAAASUVORK5CYII">
</div>
2) Trang chuyên dụng
Với nhiều hình ảnh lớn trên cùng một trang, base64 có thể không phải là lựa chọn tốt
Base64 rất tuyệt, nhưng hơi nặng (thường khoảng gấp đôi so với nhị phân giá trị được mã hóa) và không thể lưu vào bộ nhớ đệm bởi trình duyệt vì nó là một phần của trang chứ không phải là một trang của chính nó (như một bức tranh).
Trong trường hợp này, cách tốt nhất là sử dụng một trang php cụ thể để hiển thị hình ảnh của bạn:
Trên trang chính, sử dụng thay vì cơ sở 64:echo '<img src="image.php?id='.$id.'"/>';
với id của dòng bạn muốn hình ảnh.
Trên image.php
của bạn , về cơ bản, bạn nên sử dụng cái này:
// << include the $pdo here
$query = $pdo->prepare("SELECT `content` FROM `adsubm` WHERE `id` = :id" );
$query->execute(array(':id'=>$_GET['id']));
$data = $query->fetch();
if(empty($data)))
header("HTTP/1.0 404 Not Found");
else {
header('Content-type: image/jpeg');
echo $data['content'];
}