Каков наилучший способ загрузить папку на сайт? - PullRequest
17 голосов
/ 31 октября 2008

Мне нужен простой способ разрешить пользователям загружать несколько файлов одновременно (т.е. мне нужно разрешить пользователю загружать папку). Я не хочу возлагать бремя молнии на пользователя.

Я бы предпочел избегать Flash или вариантов, если это возможно. Я ищу прямое решение JavaScript / HTML, если это возможно. Обратите внимание, что это исключает ответы по адресу: Какая библиотека на стороне клиента лучше всего подходит для загрузки нескольких файлов через http? .

Ответы [ 7 ]

26 голосов
/ 31 октября 2008

Вы не сможете сделать это только с помощью HTML и Javascript. Я бы порекомендовал попробовать Fancy Upload , плагин MooTools для загрузки нескольких файлов. Он использует смесь JavaScript и Flash, но изящно ухудшается. Он работает со всеми основными браузерами, включая IE6, а также доступен для загрузки релиз, совместимый с Flash 10 (хотя демоверсия еще не обновлена).


Обновление (2012-11-26):

Несколько файлов возможна загрузка с valums или blueimp загрузчиками файлов.

Для рекурсивных каталогов для загрузки лучше всего использовать API-интерфейс для загрузки папок в Chrome 11 . Похоже, что он работает и в Firefox, если вы используете префикс поставщика.

4 голосов
/ 26 июля 2015

С Firefox 42 и Edge, реализовавшим новое предложение о загрузке каталогов , мы наконец-то сможем выполнять кросс-браузерную загрузку каталога. API-интерфейсы достаточно противны, так что вы можете проверить мою оболочку, uppie .

3 голосов
/ 31 октября 2008

Если вы избегаете Flash (и, вероятно, Java?), Для решения только для JS / HTML по-прежнему требуется один файл input s, но по сути вы присоединяете событие onchange к вашему input, добавляя новый input в DOM при каждом выборе файла.

2 голосов
/ 21 ноября 2012

Несколько файлов возможна загрузка с valums или blueimp загрузчиками файлов.

Для рекурсивных каталогов загрузок, ваши параметры более ограничены:

2 голосов
/ 31 октября 2008

FTP? И если necs, оберните в Java-апплет, ActiveX или все, что вы хотите.

Если нет, хотя вам не нужна вспышка, SWFUpload довольно крутой, вы можете пересмотреть его как достойный вариант.

1 голос
/ 01 ноября 2008

Здесь - чистое решение JS с использованием библиотеки ExtJS

1 голос
/ 31 октября 2008

Это не чисто решение js / html. Как указывает EndangeredMassa, это невозможно. Фактически, эта идея - решение только для IE / Windows. Я не рекомендую это, но это может работать.

Итак, все отказы от ответственности ...

Много лет назад и несколько работодателей мы делали некоторые вещи на стороне клиента, которые создавали экземпляр FileSystemObject. Он будет перебирать каждый из файлов и передавать их на сервер по одному. Не могу вспомнить детали того, как мы это сделали: o (

В любом случае, это обычно означало, что клиентскому боксу нужно будет добавить сайт в список доверенных сайтов и дать доверенным сайтам кучу разрешений, которые отключены (по очень веским причинам). Вещи, такие как возможность инициализации и сценария элементов управления ActiveX, не помечены как безопасные. Такого рода вещи.

Я знаю, что это не идеальный ответ, но он может указать вам верное направление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...