Как лучше всего загрузить папку на сайт?

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

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

Диодей: Вы должны опубликовать это как ответ.

eyelidlessness 31.10.2008 20:27
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
16
1
32 373
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

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

Можно ли получить список файлов в определенной папке и автоматически передать его в элемент управления вводом?

torial 31.10.2008 20:29

Я ответил собственным вопросом из комментариев: codeproject.com/KB/scripting/search_in_files.aspx

torial 31.10.2008 20:31

Хотя проблема со ссылкой, которую я нашел, заключается в том, что для нее требуется ActiveX. И в этот момент я мог бы также использовать flash: - /

torial 31.10.2008 20:32

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

Итак, все заявления об отказе от ответственности ...

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

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

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

FTP? А если нет, оберните Java-апплет, ActiveX или что угодно.

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

Ответ принят как подходящий

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


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

Загрузка Множественный файл возможна с помощью загрузчиков файлов валумы или Blueimp.

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

Почему нельзя загружать как отдельные файлы, так и папки, если у вас установлен атрибут webkitdirectory? Странно, что это либо / или вещь ... Кроме того, могу ли я загрузить только один каталог или я могу выбрать пару с множеством атрибутов?

Charles John Thompson III 01.03.2013 07:15

Это старый вопрос, и принятый ответ уже устарел. См. Мой ответ на этот вопрос о нескольких рабочих решениях stackoverflow.com/questions/42239663/…

CaseyC 20.07.2017 22:18

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

Это работает для нескольких файлов, но не для папок. См. stackoverflow.com/a/13486123/486547

mikermcneil 21.11.2012 08:07

Что вы имеете в виду под «папкой для загрузки»? В любом случае в папке будут файлы.

Thevs 26.11.2012 10:11

Вы можете использовать основанную на стандартах технологию для загрузки нескольких файлов с помощью окна загрузки файлов (например, imgur.com/Cl1RB), но вы не можете выбрать папку (imgur.com/2dZtS) и рекурсивно загрузить ее содержимое. Для этого вам нужно использовать проприетарный материал -moz / -webkit. Надеюсь, это поможет!

mikermcneil 26.11.2012 11:20

Загрузка Множественный файл возможна с помощью загрузчиков файлов валумы или Blueimp.

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

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

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

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

Другие вопросы по теме