Blueimp文件上传器 - Chrome文件夹上传限制

时间:2015-04-01 09:43:16

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

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

当我尝试使用chrome drag& drop文件夹支持上传多个文件时,我遇到了某种限制。我找不到任何方法来改变或禁用这个限制。

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

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

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

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

我找不到任何相关的文档,我迫切需要将这个限制提升到1000个文件/文件夹,每个文件/文件夹最少或没有限制。

谢谢大家。

1 个答案:

答案 0 :(得分:2)

搜索相关文档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 {

我希望有所帮助。