【问题标题】:Multiple file upload doesn't work in Safari 6.1 above, unless web inspector open多个文件上传在以上 Safari 6.1 中不起作用,除非打开 Web 检查器
【发布时间】:2013-12-30 01:49:02
【问题描述】:

所以我有一个文件上传网站,我使用 HTML5 分块功能来上传多个文件。它在 Chrome、Firefox、IE(基本上具有 HTML5 功能的浏览器)以及 Safari 上运行良好,但最近我对其进行了测试,Safari 6.0.5 运行良好,但在 Safari 6.1 上,如果我上传多个文件,有些文件为 0字节。我不确定发生了什么。

当我测试时,我上传了大约 70 个文件,总计 200MB,每个文件在 5-8MB 之间。所以没有发生分块。但是当我在服务器上检查时,大多数文件都是 0 字节(就像它永远不会得到上传)除了少数文件(大概3-5个文件)

Safari 6.0.5 及以下版本与 Safari 6.1 有什么区别吗?

我的代码基本上是: 如果每个文件大于 10MB/文件,Javascript 会将其分块,否则它将按原样上传。 然后 PHP 将处理上传(标准文件上传样式 move_uploaded_file())。

function uploadFile(file_blob_chunk, file_name, file_part, total_file_chunk, file_id) {
    //create a progress bar based on file id (check if it's the 0 part, otherwise there will be multiple bar for same file)
    if(file_part == 0) {
        progressBar(file_id);
    }

    //ajax call for creating multipart data form
    fd = new FormData();    
    fd.append("file_for_upload", file_blob_chunk);
    fd.append("file_id", file_id);
    fd.append("file_name", file_name);
    fd.append("file_part", file_part);

    xhr = new XMLHttpRequest();
    xhr.fid = file_id;
    xhr.fid_name = file_name;
    xhr.fid_part = file_part;
    xhr.fid_total_chunk = total_file_chunk; 

    xhr.upload.fid = file_id;
    xhr.upload.fid_part = file_part;
    xhr.upload.fid_total_chunk = total_file_chunk;
    xhr.open("POST", "datas/upload/" + file_name + '/' + file_part, true);

    xhr.send(fd);

代码明智的就是这样......

知道 safari 6.1 有什么问题吗?

查看tmp文件夹,上传时tmp文件为0字节..

注意:Safari 6.1+,如果 web 检查器打开,每个文件都正确上传,如果它关闭,则 10 个文件中只有 3 个被上传,其余为 0 字节。造成这种差异的原因是什么?

【问题讨论】:

  • 这可能有帮助,也可能没有帮助,但它似乎在 Safari 7.0 中有效。我相信这可能是 safari 6.1 的一个错误,因为我在 6.1 中看到多个报告相同的问题。
  • @Telshin 它仍然发生在 Safari 7 上
  • 函数uploadFile()怎么称呼你?
  • 文件大小是多少??
  • @R3tep 我调用函数上传文件的方式只是标准。而(开始

标签: javascript php html file-upload safari


【解决方案1】:

很多帖子都在讨论同一个问题:

file input size issue in safari for multiple file selection

https://github.com/moxiecode/plupload/issues/363

Any workarounds for the Safari HTML5 multiple file upload bug?

解决此问题的唯一方法是禁用 Safari 的多次上传。

【讨论】:

  • 这不太一样..因为大多数问题是 2 岁.. 这仍然是旧的 Safari 版本.. 就我而言,那些 Safari 正在工作。仅从 Safari 6.1 开始,它不适用于我的情况。只有在我将 Safari 从 6.0.5 更新到更高版本后才会出现问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-17
  • 2013-12-08
  • 1970-01-01
相关资源
最近更新 更多