我想从传递的二进制字符串创建图片:
$fileName = uniqid().".".$imgType;
$fileName = "../tmp/".$fileName;
$f = fopen($fileName,'wb');
$picture = mb_convert_encoding($picture, "UUENCODE", "UTF-8");
fwrite($f, $picture);
fclose($f);
这在一台装有 PHP 5.3.10-1ubuntu3.4 的机器上运行良好。图片已正确创建。如果在另一台使用 PHP 5.3.19 的机器上尝试,输出会很奇怪。例如,如果您使用less
then 打开文件,您将找到\0
而不是所需的^@
字符。
为什么会这样?
二进制字符串是来自网站的发布请求的一部分,该网站使用在两种情况下都使用 UTF-8 编码的 HTML5 Formdata。