如何从base64数据保存jpg文件

时间:2013-11-05 18:28:37

标签: php codeigniter

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

我的base 64代码以

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

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

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

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

此外,如果您需要进一步澄清,请告诉我您需要进一步澄清的部分。

3 个答案:

答案 0 :(得分:5)

在调用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));

答案 1 :(得分:2)

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

file_put_contents('MyFile.jpg', file_get_contents('data:image/jpg;base64,/...'));

答案 2 :(得分:0)

您需要使用imagecreatefromstringimagejpeg,这是一个例子:

$imageStr = base64_decode($imgData1);
$image = imagecreatefromstring($imageStr);
imagejpeg($image, $somePath);