Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax上载文件:$\文件为空,但请求标头中存在文件_Javascript_Php_Jquery_File Upload_Form Data - Fatal编程技术网

Javascript Ajax上载文件:$\文件为空,但请求标头中存在文件

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();

当用户在页面上放置文件时,我使用formdata上传文件。客户端一切正常,请求头中存在文件详细信息,但当我打印\u r($\u文件)时,它返回一个空数组。未设置服务器端限制。我通过手动上传一个文件来测试它

申请详情:

js代码:

$('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我尝试过,但仍然是空的,并警告:在多部分/表单数据发布数据中缺少边界