php图片转base64 - 使用PHP将Base64字符串保存为磁盘




binary (6)

将数据传递给base64_decode()以获取二进制数据,用file_put_contents()将其写入到一个文件中

作为一个“看看下面”的教程为自己我建立一个PHP脚本来收集邮件从POP3邮件。 在尝试使用二进制附件时,我试图弄清楚如何处理附件信息。

给定一个从电子邮件中收集的字符串:

------ = _ Part_16735_17392833.1229653992102 Content-Type:image / jpeg; name = trans2.jpg Content-Transfer-Encoding:base64 X-Attachment-Id:f_fow87t5j0 Content-Disposition:attachment; 文件名= trans2.jpg

/ 9j / 4AAQSkZJRgABAgEASABIAAD / 4QxrRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAUAAAAcgEyAAIAAAAUAAAAhodp

(......)

EAgEAgEAgEAgEAg8IBQRL / Lbe / tJrScHqZ2lkmE4XUP2XcSDZZ2VvZ28dtbsDIYmhkbRxAIJCAQC AQCAQf / ScyAQCAQCAQCAQCAQCAQQQCAQCAQCAQCAQQf / 9k = ------ = _ Part_16735_17392833.1229653992102 -

有没有办法将数据保存到磁盘,以便它是一个可用的格式?



我也有类似的情况,这就是我所做的。 如前所述,确保删除base64字符串前后的多余行。

<?php
$INPUT = "inputfile_base64_encoded.txt";
$OUTPUT = "output_decoded.zip";
$contents = file_get_contents($INPUT);
$bin = base64_decode($contents);
file_put_contents($OUTPUT, $bin);
?>

首先和最后一行, base64解码并保存在给定的文件名下。

完成。


我试了下面,但没有为我工作,正在生成一个空的图像文件。

file_put_contents('img.png', base64_decode($base64string));

这是如何为我工作的:

$data = 'data:image/png;base64,AAAFBfj42Pj4';

list($type, $data) = explode(';', $data);
list(, $data)      = explode(',', $data);
$data = base64_decode($data);

file_put_contents('/tmp/image.png', $data);

我从以下代码中获取: 如何从base64数据字符串保存PNG图像服务器端


对于来自数据库的大型base64字符串,您需要使用load()

$imgdata = $FromDB['BASE64']->load();
$imgdata =  base64_decode($imgdata);
file_put_contents($fileName, $imgdata);




base64