ajax卡死new formdata(),使用FormData和jQuery上传Ajax大文件无法发布数据

博主在尝试使用AJAX和FormData上传文件时遇到问题。当上传大文件(例如10MB)时,虽然小文件能成功上传,但大文件的上传导致服务器接收到的数据为空。已经检查了contentType和processData设置,都设为了false,但问题依然存在。代码中显示了用于创建FormData对象和发起AJAX请求的部分,以及HTML输入元素。目前的问题集中在为何无法通过此方法上传大文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在尝试使用FormData通过AJAX上传文件 . 如果我在没有选择要上传的文件的情况下提交AJAX调用,则帖子工作正常,并且在服务器上接收其他字段(不是文件上载) . 如果我选择要上传的文件,则调用到达服务器时没有任何数据(在PHP中,$ _POST和$ _FILES数组都是完全空的) . 我知道如果你没有告诉jQuery不设置contentType会发生这种情况,但是我将contentType和processData设置为false,它仍然不会发送数据 .

这是我的代码:

function AddComment(taskid) {

var newnote = $('#newnote_'+taskid).val();

if(newnote != '') {

$('#tasklist *').css('cursor', 'progress');

var formData = new FormData();

$('.upload-' + taskid).each(function() {

if (this.files[0]) {

formData.append($(this).attr('name'), this.files[0]);

}

});

formData.append("taskid", taskid);

formData.append("newnote", newnote);

$.ajax({

url: '/modules/task/ajax/ajaxAddComment.php',

data: formData,

processData: false,

contentType: false,

type: 'post',

success: function(data){

alert(data);

}

});

}

}

我确定我做的很蠢,但我看不出什么......?

编辑:这是HTML:

Attachments will be uploaded when you append a comment.

编辑2:好的,问题只发生在上传相对较大的文件时(不是很大 - 在这种情况下是10MB) . 小文件上传OK . 所以现在的问题是为什么我不能使用这种方法上传大文件?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值