gpt4 book ai didi

php - 从 PHP 写入图像文件时出错

转载 作者:行者123 更新时间:2023-12-01 08:38:42 28 4
gpt4 key购买 nike

我正在尝试从 blob 写入图像文件。

 if($_POST['logoFilename'] != 'undefined'){
$logoFile = fopen($_POST['logoFilename'], 'w') or die ("Cannot create ".$_POST['logoFilename']);

fwrite($logoFile, $_POST['logoImage']);

fclose($logoFile);
}

在前面的代码片段中, $_POST['logoImage']是一个BLOB。该文件已正确写入根目录,但无法打开该文件。在 ubuntu 11.04 中,我收到以下错误:
Error interpreting JPEG image file (Not a JPEG file: starts with 0x64 0x61).

如果我创建一个 img 并设置其 src=blob,则 BLOB 会正确显示

下面包括 BLOB 的第一个片段:
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAgGBgcGBQgHBwcJCQ

最佳答案

您的 "Blob"真的是Data URI :

data:[<MIME-type>][;charset=<encoding>][;base64],<data>

由于您只想要解码的数据部分,因此您必须这样做
file_put_contents(
'image.jpg',
base64_decode(
str_replace('data:image/jpeg;base64,', '', $blob)
)
);

但由于 PHP 本身支持 data://流,你也可以这样做(感谢@NikiC)
file_put_contents('image.jpg', file_get_contents($blob));

如果上述方法不起作用,您可以尝试使用 GDlib:
imagejpg(
imagecreatefromstring(
base64_decode(
str_replace('data:image/jpeg;base64,', '', $blob)
)
),
'image.jpg'
);

关于php - 从 PHP 写入图像文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6710309/

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