Javascript 无法使用ajax将某些文件上载到php服务器
我使用的是这个答案中的ajax文件上传 JavaScript代码如下所示:Javascript 无法使用ajax将某些文件上载到php服务器,javascript,php,ajax,multipartform-data,form-data,Javascript,Php,Ajax,Multipartform Data,Form Data,我使用的是这个答案中的ajax文件上传 JavaScript代码如下所示: function addAiFile(order_id) { var data = new FormData(); data.append('order_id', order_id); jQuery.each(jQuery('.ai-file_upload')[0].files, function(i, file) { data.append(
function addAiFile(order_id) {
var data = new FormData();
data.append('order_id', order_id);
jQuery.each(jQuery('.ai-file_upload')[0].files, function(i, file) {
data.append('file-'+i, file);
});
var url='<?php echo $addAiFile; ?>';
url=url.replace(/amp;/g, '');
console.log(...data)
jQuery.ajax({
url: url,
data: data,
cache: false,
processData: false,
method: 'POST',
type: 'POST', // For jQuery < 1.9
success: function(answer){
$('#ai-modal .modal-body').html(answer);
}
});
}
函数addAiFile(订单id){
var data=new FormData();
data.append('order\u id',order\u id);
jQuery.each(jQuery('.ai-file_upload')[0]。文件,函数(i,文件){
data.append('file-'+i,file);
});
var url='';
url=url.replace(/amp;/g');
console.log(…数据)
jQuery.ajax({
url:url,
数据:数据,
cache:false,
processData:false,
方法:“POST”,
对于jQuery<1.9,键入:'POST',//
成功:功能(答案){
$('#ai modal.modal body').html(答案);
}
});
}
在前端,当我触发这个function时,我得到了正确的日志结果。
但在后端,我的$\u文件数组为空。这种情况只发生在一些文件中,我找不到触发这种情况的原因
这是我的密码:
public function addAiFile(){
$target_dir = "./";
$target_file = $target_dir . basename($_FILES["file-0"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
echo $target_file;
print_r($_FILES);
echo "<br>" . $_SERVER['CONTENT_LENGTH']/1000000 ;
echo "<br>" . ini_get('post_max_size');
echo "<br>" . ini_get('upload_max_filesize');
print_r(pathinfo($target_file));
die();
}
公共函数addAiFile(){
$target_dir=“./”;
$target_file=$target_dir.basename($_FILES[“file-0”][“name”]);
$uploadOk=1;
$imageFileType=strtolower(路径信息($target_文件,路径信息_扩展名));
echo$target_文件;
打印(美元文件);
echo“
”$\u服务器['CONTENT\u LENGTH']/1000000;
echo“
”.ini_get('post_max_size');
echo“
”.ini_get('upload_max_filesize');
打印(路径信息($target_文件));
模具();
}
如果出现错误,php将打印以下内容:
./-0.0数组()
34.860443
80米
80M阵列([dirname]=>。/[basename]=>-0。
[扩展名]=>[文件名]=>-0)
如果一个文件没有错误,我就得到这个
./oaid.png数组([file-0]=>Array([name]=>oaid.png[type]=>
image/png[tmp_name]=>/tmp/php57HOx7[error]=>0[size]=>16554)
)
0.016836
80米
80M阵列([dirname]=>。/[basename]=>oaid.png
[扩展名]=>png[文件名]=>oaid)
我想在这里发布一个文件作为示例,但它是30mb。另外,需要注意的是,这种情况只发生在某些文件中。
如何解决此问题?请检查服务器配置,原因可能是您上载的文件太大,服务器不接受them@GiacomoM45mb的csv文件
方法:'POST',类型:'POST',
都是相同的方法:'POST'
足够删除另一个了吗