2015-04-01 3 views
1

Только chrome 22 и более поздние версии поддерживают загрузку относительных имен папок при перетаскивании папок при загрузке браузера (html5).Blueimp File Uploader - ограничения загрузки папки Chrome

Когда я пытаюсь загрузить несколько файлов с помощью хромного перетаскивания & поддержка папок, я испытываю какое-то ограничение. И я не мог найти способ изменить или отключить это ограничение.

  • Когда вы просто выбираете 1000 файлов и отбрасываете их на загрузчик, он работает и добавляет эти файлы в список загрузки после ожидания некоторого времени для обработки. Все в порядке.

  • Когда вы выбираете папку, включающую в себя 1000 файлов, и отправляете ее на загрузчик, тогда загрузчик просто добавляет случайные 100 файлов в эту папку.

  • Когда вы создаете 110 папок, затем включайте по 1 файл в папках, а затем добавляет только 100 файлов, оставляя 10 папок.

Кажется, механизм загрузки хром файла/папки как-то ограничивает максимальное количество элементов в любой папке, в то время как рекурсивно ползет файлы & папки. И номер ограничения - 100.

Я не нашел никакой связанной документации, и я отчаянно нуждаюсь в повышении этого предела до 1000 файлов/папок каждый по минимуму или без ограничений.

Спасибо всем уже.

+0

Привет, @wmwmwm Вы можете рассказать нам, как вы обрабатываете загрузку папки в бэкэнд? –

+0

Привет @ karthik-k, мы не используем оригинальный обработчик для загрузчика. Мы используем наше собственное программное обеспечение. Но вы можете использовать data.files [0] .relativePath at bind ('fileuploadadd', function (e, data) {раздел основного загрузчика javascript, а также опубликовать это значение при загрузке. Если это не так, вы можете добавить легко от uploader javascript – wmwmwm

ответ

1

После поиска соответствующей документации в течение 2 дней я мог найти ответ в следующем URL-адресе.

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 { 

Replace:

 } 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 { 

Я надеюсь, что помогает.

+0

Кстати, эта ошибка, по-видимому, исправлена ​​в последних версиях загрузчика jquery. Если вы используете последнюю версию, то никогда не считайте эту запись. https://github.com/blueimp/jQuery-File- Загрузить/совершить/911dcf1f5bbfda877573fd4fb2b67dd47f225752 – wmwmwm