对于PHP

时间:2016-04-07 20:03:27

标签: php base64

我正在尝试使用以下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字符串有什么不同吗?

1 个答案:

答案 0 :(得分:0)

不,base64_encode()base64_decode()不具备上下文感 Base64格式甚至没有用于在网页上有效地显示图像 - 它恰好可以在今天使用。

您的问题是由错误的数据引起的 - 不一定是损坏的,但是您传递给base64_decode()的内容不是您最初从base64_encode()获得的结果。
我假设您通过HTTP以某种方式传输它,并且通常涉及URL编码,它将编码+/= - 完全有效的Base64字符。