ajax上传文件 获取失败,在大型文件上使用formData上传Ajax文件失败

我正在通过ajax发送一个包含上传文件的FormData对象,但是当我尝试上传大文件(> 5M)时,我收到了空的$ _POST和$ _FILES变量。

阅读了很多有关此问题的文章,我几乎应用了所有内容,但没有用。

I've tried on php.ini:

- max_execution_time = 300

- max_input_time = 300

- post_max_size = 2048M (large but compulsory)

- upload_max_filesize = 2048M (large but compulsory)

- max_input_vars = 2000 (trying different values)

On HTTP/HTTPS directives (some have no sense but I was trying in a desperately way to see the behaviour):

- FcgidConnectTimeout 300

- FcgidIOTimeout 300

- FcgidIdleTimeout 300

- FcgidBusyTimeout 300

- IPCCommTimeout 9999

- FcgidMaxRequestLen 21474836480

我的代码如下:

var form = $('form[name="myform"]');

var formData = new FormData(form[0]);

/*

Also tried this:

var file = $("form[name='myform'] input[name='filename']");

formData.append("my_upload", (file[0]).files[0]);

*/

$.ajax({

type: 'post',

data: formData,

dataType: 'json',

async: true,

url: '/mysite/controllers/Controller.php',

processData: false,

contentType: false,

...

});

因此,对于<5M的文件,一切都可以在我的本地服务器和生产服务器中完美运行。对于大于5M的文件,仅在本地服务器上有效,而在生产服务器上则无效(我在其中收到空的$ _POST和$ _FILES变量)。尽管生产服务器在CloudFlare的WAF下,但它们通常具有一些变量配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值