Bạn có thể lưu trữ hình ảnh trong cơ sở dữ liệu của mình nếu bạn muốn (mặc dù không có gì sai khi chỉ lưu trữ chúng dưới dạng tệp, hãy chọn bất kỳ điều gì phù hợp với tình huống của bạn), nhưng hãy lưu trữ dữ liệu nhị phân thô trong BLOB (tức là không mã hóa nó bằng căn64). Bạn có thể nhúng dữ liệu nhị phân mà bạn nhận được từ file_get_contents
trong truy vấn của bạn trực tiếp, miễn là bạn sử dụng hàm thoát thích hợp (mysql_real_escape_string
trong trường hợp của bạn) trước.
Đối với việc xuất hình ảnh, bạn có thể làm theo cách bạn đang làm ngay bây giờ, nhưng bạn sẽ phải xuất nó được mã hóa base64 và với data
Lược đồ URI như thế này:
echo '<img alt="embedded image" src="data:image/png;base64,' . chunk_split(base64_encode($get_pics2['img_location'])) . '">';
Lưu ý rằng có một số ưu điểm và nhược điểm của dữ liệu hình ảnh nhúng. Một số nhược điểm quan trọng cần lưu ý là chi phí nghiêm trọng của mã hóa base64 (lớn hơn khoảng 33% so với bản gốc) và các vấn đề về bộ nhớ đệm tiềm ẩn.