大家好日子,这是我第一次在这里发帖。
我想使用编码为base64的图片在我的域中上传图片,
我的图片已完全上传到服务器,但我仍然收到服务器错误500 ,
我的php.ini文件中的memory_limit是128M`
我正在使用XAMPP服务器
<?php
header('Content-type : bitmap; charset=utf-8');
$encoded_string = $_POST['string_encoded']; //encoded string
$imagename = 'image.png';
$decoded_string = base64_decode($encoded_string);
$path = 'imageses/'.$imagename;
$file = fopen($path, 'wb');
fwrite($file, $decoded_string);
fclose($file);
?>`
答案 0 :(得分:0)
假设image.png的大小为2MB。在这种情况下,只从base64解码它将大约64 * 2 MB写入内存,即128 MB。这可能是问题的原因。要解决此问题,请在php.ini中增加memory_limit
。另一个可能的问题是脚本被加载多次,以并行方式进行相同的大型解码。如果一切都失败了,那么你仍然可以取得成功,但不能解码整个文件,一次只能解码一个小包,并在尽快计算时忘记包。