Javascript Ajax上载文件:$\文件为空,但请求标头中存在文件
当用户在页面上放置文件时,我使用formdata上传文件。客户端一切正常,请求头中存在文件详细信息,但当我打印\u r($\u文件)时,它返回一个空数组。未设置服务器端限制。我通过手动上传一个文件来测试它 申请详情: js代码:Javascript Ajax上载文件:$\文件为空,但请求标头中存在文件,javascript,php,jquery,file-upload,form-data,Javascript,Php,Jquery,File Upload,Form Data,当用户在页面上放置文件时,我使用formdata上传文件。客户端一切正常,请求头中存在文件详细信息,但当我打印\u r($\u文件)时,它返回一个空数组。未设置服务器端限制。我通过手动上传一个文件来测试它 申请详情: js代码: $('html').live('drop', function(e) { try { e.stopPropagation(); e.preventDefault();
$('html').live('drop', function(e)
{
try
{
e.stopPropagation();
e.preventDefault();
var files = e.originalEvent.dataTransfer.files || e.target.file || e.dataTransfer.files;
var file;
var len = files.length;
var i =0;
var formdata = new FormData();
for ( ; i < len; i++ ) {
file = files[i];
if ( window.FileReader ) {
reader = new FileReader();
reader.onloadend = function (e) {
$('html').removeClass('hover');
};
reader.readAsDataURL(file);
}
if (formdata) {
formdata.append("files[]", file);
}
}
if (formdata)
{
$.ajax({
url: base_url+"/kh/site/file/upld",
type: "POST",
data: formdata,
processData: false,
contentType: false,
success : function(res){
console.log(res);
},
error: function(res){
console.log(res);
}
});
}
return false;
}catch(a){console.log(a.message);}
});
$('html').live('drop',函数(e)
{
尝试
{
e、 停止传播();
e、 预防默认值();
var files=e.originalEvent.dataTransfer.files | | | e.target.file | | e.dataTransfer.files;
var文件;
var len=files.length;
var i=0;
var formdata=new formdata();
对于(;i
PHP代码:
<?php print_r($_FILES); ?>
我错过了什么
提前谢谢 2个原因
您需要一次附加1个文件
formData.append( 'fileName', fileData);
fileName[] -- will not work
加现金:false
$.ajax({
type: "POST",
url: url,
data:formData,
**cache: false,**
contentType: false,
processData: false
此外,dropZone的配置也可能错误
Dropzone.options.myAwesomeDropzone={
url: "post_ad.php",
method: "post",
**enctype:"multipart/form-data",**
paramName: "files",
addRemoveLinks: true,
autoProcessQueue: false,
**uploadMultiple: true,**
parallelUploads: 100,
我遇到了完全相同的问题,结果证明这不是AJAX的错误。对于PHP,上载不仅受到
upload\u max\u filesize
的限制。在服务器上配置上载参数时,请考虑以下ini:
max_execution_time
:如果将upload_max_filesize
设置为100mb,并且脚本的max_execution_time为5秒,则服务器很可能返回404或500
max\u input\u time
:根据upload\u max\u filesize
,您希望此值足够高,以便完成完整上传。现在的Internet连接有很大的下载带宽,但上传有问题
post\u max\u size
:根据定义,上传过程是一个$\u post请求,因此如果upload\u max\u filesize
的值为100mb,则不能有更低的post\u max\u size
值。实际上,你可以,但在上传时,如果总上传大小介于post\u max\u size
和upload\u max\u filesize,$\u文件仍然是空的。你能不能也显示请求头?@croe我共享了这个链接:是的……在那里我们看不到请求头,因为你没有打开它们。哦,是的,@cbroe我尝试过,但仍然是空的,并警告:在多部分/表单数据发布数据中缺少边界