【发布时间】:2019-01-10 10:05:37
【问题描述】:
我正在尝试通过 PHP 和 jquery ajax 实现上传文件。我可以对小文件执行此操作,但是,当我尝试上传大文件时,它显示“未知错误”。 我的jQuery代码:
var data = {
data: self.parent().prev().find('img').attr('image_data'),
};
$.ajax({
url: 'banner_data/upload_remove_files',
type: 'POST',
data: data,
dataType: "json",
success: function(data) {
if (data.msg != 'error' && self.hasClass('remove_class')) {
alert('File Uploaded');
},
error: function() {
alert('Unknown error occurred');
}
});
我的 PHP 代码:
if (!empty($_POST['data'])) {
$file_location = $_SERVER['SERVER_NAME'].
'/pathname';
$file_name = !empty($_POST['name']) ? $_POST['name'] : '';
list($type, $raw_data) = explode(';', $_POST['data']);
list(, $raw_data) = explode(',', $raw_data);
$raw_data = base64_decode($raw_data);
if (file_put_contents($file_location.$file_name, $raw_data) === FALSE) {
$msg = 'error';
}
}
print json_encode(array(
'msg' => $msg,
'file_name' => $file_name
));
post_max_size 变量值为 100 MB。所以,这不是问题。 如果问题在于 POST 请求的负载限制超出,那么如何解决?
【问题讨论】:
-
您在控制台中只得到
Unknown Error作为错误?这是不可能的。 -
你重启服务器了吗? stackoverflow.com/a/11853729/2181514
-
检查控制台中的实际错误。
Unknown error消息来自您自己的代码,根本没有帮助。 -
看起来有许多设置需要设置,例如
upload_max_filesizestackoverflow.com/a/42731244/2181514(以及该问题的其他答案) -
@RoryMcCrossan 的好消息 - 将您的
error处理程序更改为error: function(jqXHR, textStatus, errorThrown) { console.log(jqXHR, textStatus, errorThrown); }并检查控制台。