2

我的图像有 base 64 数据,我想将它们作为 JPG 文件保存在我的本地计算机中。

我的 base 64 代码以

data:image/jpg;base64,/...

我已经尝试通过以下代码保存它:

 file_put_contents('MyFile.jpg', base64_decode($imgData1));

但我无法打开创建的图像;它说“文件似乎已损坏、损坏或太大”。你能否让我知道我错过了什么。

另外,如果您需要更多说明,请告诉我您需要更多说明的部分。

4

3 回答 3

5

Get rid of the prefex before calling base64_decode.

<?php
// get rid of everything up to and including the last comma
$imgData1 = substr($imgData1, 1+strrpos($imgData1, ','));
// write the decoded file
file_put_contents('MyFile.jpg', base64_decode($imgData1));
于 2013-11-05T19:00:35.337 回答
2

这看起来不仅是 base64,而且是 PHP 流包装数据。

file_put_contents('MyFile.jpg', file_get_contents('data:image/jpg;base64,/...'));
于 2013-11-05T18:32:28.583 回答
0

您需要使用imagecreatefromstringand imagejpeg,这是一个示例:

$imageStr = base64_decode($imgData1);
$image = imagecreatefromstring($imageStr);
imagejpeg($image, $somePath);
于 2013-11-05T18:32:05.700 回答