Ajax没有发布大文件

时间:2013-04-11 20:08:27

标签: php jquery ajax file-upload xmlhttprequest

我使用jQuery的ajax上传文件

$("#transfer").live("click", function()
{
    var data = new FormData();

    data.append("your_email", $("#your_email").val());
    data.append("your_message", $("#your_message").val());

    $.each($(".friends_email_item"), function(a,b)
    {
        var email = $(b).text();

        data.append("emails[]", email);
    });

    for(i = 0; i < files.length; i++)
        data.append("files[]", files[i]);

    $.ajax({
        url: "upload.php", 
        type: "POST",

        success: function(a)
        {
            console.log(a);
        },

        data: data,

        contentType: false,
        processData: false
    });
});

当我选择一个小文件,如文本文件或屏幕截图。我得到了发布的数据和发布的文件的转储。

array
  'your_email' => string 'Hello@test.com' (length=14)
  'your_message' => string 'test' (length=7)

array
  'files' => 
    array
      'name' => 
        array
          0 => string '1.png' (length=5)
      'type' => 
        array
          0 => string 'image/png' (length=9)
      'tmp_name' => 
        array
          0 => string 'C:\wamp\tmp\phpBD32.tmp' (length=23)
      'error' => 
        array
          0 => int 0
      'size' => 
        array
          0 => int 117994

当我上传50mb zip或500mb视频时,我得到一个空数组

array
  empty

array
  empty

为什么它是一个大文件时无法发布任何数据?

1 个答案:

答案 0 :(得分:2)

检查将影响上传大小限制的服务器配置设置: 使用phpinfo()查看值

upload_max_filesize是对每个文件的限制;但是,max_post_size是整个请求的上限,其中包括所有上传的文件。