【问题标题】:Blueimp File Uploader - Chrome folder upload limitationsBlueimp File Uploader - Chrome 文件夹上传限制
【发布时间】:2015-06-05 21:43:06
【问题描述】:

只有 chrome 22 及更高版本支持在浏览器上传(html5)时拖放文件夹时上传相对文件夹名称。

当我尝试使用 chrome 拖放文件夹支持上传多个文件时,我遇到了某种限制。而且我找不到任何方法来更改或禁用此限制。

  • 当您只选择 1000 个文件并拖放到上传器时,它确实可以工作,并在等待一段时间进行处理后将这些文件添加到上传列表中。没关系。

  • 当您选择一个包含 1000 个文件的文件夹并拖放到上传器时,上传器只会在该文件夹中添加随机的 100 个文件。

  • 当您创建 110 个文件夹,然后在每个文件夹中包含 1 个文件时,上传者只添加 100 个文件,而留下 10 个文件夹。

似乎,chrome 文件/文件夹上传机制以某种方式限制了任何文件夹中的最大项目数,同时递归地抓取文件和文件夹。限制数量为100。

我找不到任何相关文档,我迫切需要将该限制提高到每个文件/文件夹至少 1000 个或无限制。

已经谢谢大家了。

【问题讨论】:

  • 嘿@wmwmwm 你能告诉我们你是如何在后端处理文件夹上传的吗?
  • 嗨@karthik-k,我们没有使用上传器的原始处理程序。我们正在使用我们自己的软件。但是您可以在主要上传者 javascript 的 bind('fileuploadadd', function (e, data) { 部分使用 data.files[0].relativePath。它也可能在上传时发布此值。如果没有,您可以添加很容易从上传者 javascript。

标签: javascript jquery google-chrome file-upload blueimp


【解决方案1】:

在搜索相关文档2天后,我可以在以下网址找到答案。

https://developer.mozilla.org/en-US/docs/Web/API/DirectoryReader#readEntries

而且我可以修复 blueimp 上传器。

jquery.fileupload.js

查找:

            } else if (entry.isDirectory) {
            dirReader = entry.createReader();
            dirReader.readEntries(function (entries) {
                that._handleFileTreeEntries(
                    entries,
                    path + entry.name + '/'
                ).done(function (files) {
                    dfd.resolve(files);
                }).fail(errorHandler);
            }, errorHandler);
        } else {

替换:

        } else if (entry.isDirectory) {
            dirReader = entry.createReader();

            var entries = [];

            var readEntries = function () {
                dirReader.readEntries(function (results /* entries */) {

                    if (results.length) {
                        entries = entries.concat(Array.prototype.slice.call(results || [], 0));
                        readEntries();
                    } else {
                        that._handleFileTreeEntries(
                            entries,
                            path + entry.name + '/'
                        ).done(function (files) {
                            dfd.resolve(files);
                        }).fail(errorHandler);
                    }

                }, errorHandler);
            };

            readEntries();

        } else {

希望对你有帮助。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-08
  • 2016-08-22
  • 1970-01-01
  • 1970-01-01
  • 2018-05-18
  • 2013-07-18
  • 2020-12-10
相关资源
最近更新 更多