【问题标题】:jQuery File Upload Always Fails With "File upload aborted"jQuery 文件上传总是失败并显示“文件上传中止”
【发布时间】:2026-01-26 22:05:01
【问题描述】:

我正在使用Blueimp File Upload Plugin,将文件上传到远程服务器。

HTML:

<input id="fileupload" type="file" name="files[]" data-url="http://my-server-ip/upload.php" multiple>

JS:

$(function () {
    $('#fileupload').fileupload({
        dataType: 'json',
        done: function (e, data) {
            $.each(data.result.files, function (index, file) {
                $('<p/>').text(file.name).appendTo(document.body);
            });
        },
        paramName: 'files[]'
    });
});

所以我尝试上传文件,但总是收到以下错误:File upload aborted

如您所见,我尝试添加paramName: 'files[]' 选项,如以下问题的答案:Jquery File Upload always fails with File Upload Aborted,文件夹的权限为777

【问题讨论】:

  • $_FILES 得到了什么?
  • @RayonDabre Array ( [files] =&gt; Array ( [name] =&gt; Array ( [0] =&gt; 1uploadMe.txt ) [type] =&gt; Array ( [0] =&gt; text/plain ) [tmp_name] =&gt; Array ( [0] =&gt; /tmp/phphJD9Lu ) [error] =&gt; Array ( [0] =&gt; 0 ) [size] =&gt; Array ( [0] =&gt; 3 ) ) )
  • 服务器端似乎出了点问题...
  • @RayonDabre 你是对的,我检查了日志并得到了move_uploaded_file(...): failed to open stream: Permission denied in ...,尽管文件夹的权限是777。我在 centos7 上运行 php5 和 nginx。有什么想法吗?

标签: javascript php jquery file-upload blueimp


【解决方案1】:

也许晚了,但希望这会帮助遇到文件中止错误的其他人。

就我而言,我正在上传巨大的视频文件...每个 2-10GB。在检查了网络上有关导致它的所有内容后,我发现提供的 UploadHandler.php 文件无法正确处理超过 32 位有符号整数 (2,147,483,647) 的文件大小 - 因此,当它将该结果与实际结果进行比较时上传的文件大小不匹配并触发错误。

此外,与整数和字符串的比较存在间歇性使用,因此我只是将代码更改为使用 (float) 来处理与文件大小相关的任何内容,这样就解决了所有问题。

【讨论】: