我的问题:PHP base64_decode产生无效图像文件
我正在使用PHP将上传的base64字符串保存到文件。该字符串来自iPhone应用程序,并且是base64编码的jpeg文件。
当我将该文件的内容手动添加到图像标记中的数据src中时,它将正确显示。当我使用file_get_contents读取它并将结果字符串添加到img数据标记时,它正常工作。
我的问题:当我使用file_get_contents读取文件并使用base64_decode()保存结果时,生成的jpeg文件是INVALID。
我的问题是,为什么明显有效的base64编码字符串在解码和保存时不产生有效的JPEG文件?
某些源摘录:
此功能,因为它应该输出图像:
$imagepath = "D:\\path\\to\\image\\mybase64image.txt";
$imagecontent = file_get_contents($imagepath);
header("Content-type:text/html");
$d = '<img alt="" src="data:image/jpeg;base64,' . $imagecontent . '"/>';
echo $d;
这不工作,该文件是无效的:
$imagepath = "D:\\path\\to\\image\\mybase64image.txt";
$imagecontent = file_get_contents($imagepath);
file_put_contents('img.jpg', base64_decode($imagecontent));
- img.jpg是一个无效的文件。 路径是有效的,文件在那里,权限也在那里(结果文件img.jpg是一个二进制文件,只是无效),正如我所说的,它作为一个数据src。
这里是base64编码文件:使用5.3.8 FASTCGI
http://www.mailnet.de/7E072017-DAEB-41E1-B02E-23FB51A05B80.txt
- PHP版本R2
- Web服务器IIS是7.5
任何帮助表示赞赏。
你能发布编码和保存数据的代码吗? – 2014-09-22 13:27:13
如果你的意思是iPhone的代码,没有我没有访问。如果有帮助,我可以发布base64编码文件吗? – 2014-09-22 13:29:00
好的,编辑 - 添加一个链接到base64编码文件。 – 2014-09-22 13:33:32