2015-06-08 33 views
4

我使用dropzone.js来处理前端的上传部分,使用jquery。

http://www.dropzonejs.com/

我的测试情况是:

Upload a 34 MB file. Works fine 
Upload a 27 MB file. Works fine 
Upload two files, each of them are 5 MB. Works fine 
Upload two files, 34 MB + 27 MB. *Fail* , $_Files is an empty array 

这里是jQuery代码:

<script> 
    $(document).ready(function() { 
     Dropzone.options.myAwesomeDropzone = { 
      autoProcessQueue: false, 
      url: '<?= site_url("admin/video/upload"); ?>', 
      addRemoveLinks: true, 
      previewsContainer: ".dropzone-previews", 
      uploadMultiple: true, 
      parallelUploads: 50, 
      maxFilesize: 500, //500MB 
      acceptedFiles: 'video/*', 
      maxFiles: 100, 
      init: function() { 
       var myDropzone = this; 

       myDropzone.on("success", function (file, response) { 
        $("#success, #fail").hide(); 
        $("#" + response).show(); 
       }); 

       myDropzone.on("maxfilesexceeded", function (file) { 
        this.removeFile(file); 
       }); 

       $("#submit-all").click(function (e) { 
        e.preventDefault(); 
        e.stopPropagation(); 
        myDropzone.processQueue(); 
       }); 
      } 
     } 
    }); 
</script> 

这里是PHP代码

public function upload() { 
    die(var_dump($_FILES)); 
} 

那么,为什么$ _Files是空的以及如何解决它?非常感谢。

+1

可能的答案在这里:[http://stackoverflow.com/a/6135485/3648578](http://stackoverflow.com/a/6135485/3648578) – kosmos

回答

7

34 MB + 27 MB = 61MB。

所以你会张贴61MB。

默认PHP值为upload_max_filesize为2 MB,post_max_size为8 MB。根据您的主机,更改这两个PHP变量可以在很多地方完成,最有可能是php.ini或.htaccess(取决于您的托管情况)

您是否已经在php.ini ?

上传的每个文件的最大允许大小。

upload_max_filesize = 40M 

必须大于或等于upload_max_filesize,这是每个帖子事件上所有上传文件的总大小。

post_max_size = 40M 

如果你想上传500MB的最大文件大小比你能上述两个值设置为500MB。请记住,如果您上传多个文件,则post_max_size必须是每个帖子事件上传文件的组合文件大小。所以如果你上传了500MB的两个文件,你会设置upload_max_filesize = 501M和post_max_size = 1001M

+0

但为什么可以上传一个带有34mb和另一个27mb的文件,但是当尝试上传两个带有34mb和27mb的文件时,错误会出现?解释是什么? –

+0

我发表评论,因为我认为你需要在你的答案解释这个OP ;-) –

+0

哦,很酷,完成。 –