【发布时间】:2015-07-07 17:37:50
【问题描述】:
当我尝试上传 16.9 MB 大小的 MP4 视频时,使用 ajax 异步发布到 PHP 文件时,控制台会触发错误提示:POST http://website.com/proc_vids.php net::ERR_EMPTY_RESPONSE
我知道这个问题与 PHP memory_limit 有关,因为当我设置为 200 MB 时一切正常,但当我将其更改回 100 MB 时,就会发生此错误。
我什至无法将 POST 发送到 PHP 变量,因为一旦进行了 ajax post 调用,它就会触发错误,甚至无需在服务器端 (PHP) 执行任何操作。这是ajax的邮政编码:
var proc = 1;
video = document.getElementById('preview_video').src;
$.ajax({
'async': true,
'type': "POST",
'global': false,
'dataType': 'json',
'url': "proc_vids.php",
'data': {proc: proc, video: video}
}).done(function () {
//Do something
});
PHP 代码:
$proc = $_POST['proc'];
if ($proc == 1){
//$video = $_POST['video'];
}
如您所见,我注释了将 POST 传递给变量的行,但仍会触发错误。
我可以对包含 base64 代码的视频变量做些什么来不扩展消耗如此高的内存级别? 有没有不设置 memory_limit 更高的替代方案?
【问题讨论】:
-
请发布您的
proc_vids.php代码 -
用 PHP 代码更新。
-
你试过增加
post_max_size吗? -
怎么可能是 post_max_size 问题?如果我将 memory_limit 设置为 200 MB,则不会发生此问题,但我无法在共享主机提供商上使用超过 100 MB。
-
16.9MB
标签: javascript php jquery ajax video