我正在尝试使用以下php函数将一些图像上传到服务器:
function upload($output_file, $base64_string)
{
$ifp = fopen($output_file, "wb");
$data = explode(',', $base64_string);
fwrite($ifp, base64_decode($data[1]));
fclose($ifp);
return $output_file;
}
当我将jpeg图像传递给函数时,一切正常,但是当我传递.png或其他内容时,上传的图像已损坏。
解码不同文件类型的base64字符串有什么不同吗?
答案 0 :(得分:0)
不,base64_encode()
和base64_decode()
不具备上下文感
Base64格式甚至没有用于在网页上有效地显示图像 - 它恰好可以在今天使用。
您的问题是由错误的数据引起的 - 不一定是损坏的,但是您传递给base64_decode()
的内容不是您最初从base64_encode()
获得的结果。
我假设您通过HTTP以某种方式传输它,并且通常涉及URL编码,它将编码+
,/
,=
- 完全有效的Base64字符。