2008-10-31 2 views
15

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

Я бы предпочел избегать вспышки или вариантов, если это возможно. Я ищу прямое javascript/HTML-решение, если это возможно. Обратите внимание, что это исключает ответы по адресу: What is the best client side browser library to upload multiple files over http?.

+0

Лучший способ: FTP – 2008-10-31 17:24:20

+0

Diodeus: Вы должны отправить это как ответ. – eyelidlessness 2008-10-31 17:27:33

ответ

24

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


Update (2012-11-26):

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

рекурсивный каталог загрузок, ваше лучшее решение использует Chrome 11's new folder upload API. Он также работает на Firefox, если вы используете префикс поставщика.

3

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

+0

Возможно ли получить список файлов в определенной папке и автоматически подать в элемент управления ввода? – torial 2008-10-31 17:29:29

+0

Я ответил на собственный вопрос из комментариев: http://www.codeproject.com/KB/scripting/search_in_files.aspx – torial 2008-10-31 17:31:07

1

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

Таким образом, все правовые оговорки в сторону ...

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

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

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

2

FTP? И если НИКС, завернуть в Java Applet, ActiveX или что вы хотите.

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

1

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

2

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

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

  • Ваше лучшее решение использует Chrome 11's new folder upload API. Он также работает на Firefox, если вы используете префикс поставщика.

  • Возможно также использование кросс-браузера с кодом Java applet. Однако% от людей с JRE, установленной получил довольно низким в эти дни (< 70%)

3

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

Смежные вопросы