gpt4 book ai didi

javascript - 使用URL.createObjectURL()处理来自数据库的Blob图像

转载 作者:行者123 更新时间:2023-11-28 03:34:37 27 4
gpt4 key购买 nike

我正在做一些Ajax调用,以从服务器接收一些Blob。我想使用URL.createObjectURL()方法在浏览器上显示它。根据docs,它必须接受一个对象。

我需要帮助,如何在PHP中将其作为对象返回并在浏览器中显示结果。 (result.innerHTML = "....";

$get_blob_pst = oci_parse($conn,"SELECT ITEMIMG_IMAGE BLOB FROM SCT_ITEM_IMAGE WHERE ITEM_ID_NO=:ITEM_ID");

oci_bind_by_name($get_blob_pst, ":ITEM_ID", $row->ID);

if( oci_execute($get_blob_pst) ):
while ( $row2 = oci_fetch_array($get_blob_pst, OCI_RETURN_LOBS) ) {
$row2['BLOB'] = base64_encode($row2['BLOB']);
$result[] = $row2;
}
endif;
echo json_encode($result);


Ajax完成的方法:

let blob = URL.createObjectURL(data.BLOB);
result.innerHTML = "<img src=''/>";

最佳答案

您可以直接返回您的JavaScript可直接使用的数据URI数组:

$get_blob_pst = oci_parse($conn,"SELECT ITEMIMG_IMAGE BLOB FROM SCT_ITEM_IMAGE WHERE ITEM_ID_NO=:ITEM_ID");

oci_bind_by_name($get_blob_pst, ":ITEM_ID", $row->ID);

if( oci_execute($get_blob_pst) ):
while ($row2 = oci_fetch_array($get_blob_pst, OCI_RETURN_LOBS)) {
$data = base64_encode($row2['BLOB']);
// supposed your images are always png, or you need a way to determine
// the correct mime type string of the image (the "image/png" part)
$results[] = "data:image/png;base64,{$data}";
}
echo json_encode($results);


for (let dataURI of data) {
result.innerHTML += `<img src="${dataURI}"/>`;
}

关于javascript - 使用URL.createObjectURL()处理来自数据库的Blob图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57850989/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com