Загрузка папки одним нажатием кнопки

#c# #asp.net

#c# #asp.net

Вопрос:

Есть ли способ загрузить папку, а не zip-папку, одним нажатием кнопки в Webforms? Для загрузки файла я обычно делаю:

 Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename="   fileName);
Response.TransmitFile(fileName);
Response.End();
  

Но, похоже, это не работает для папки. Я не слишком уверен, возможно ли вообще загрузить папку через asp.net веб-формы.

Заранее благодарю вас за вашу помощь.

Комментарии:

1. Нет, способа нет. Вам нужно заархивировать ее.

2. Это невозможно ни в одной системе, и не только asp.net . Даже системы, которые, казалось бы, способны это сделать, маскируют это как несколько загрузок одного файла.

3. @VDWWD заархивировать папку на сервере, с которого я загружаю, в коде при событии click?

4. Да. Существуют библиотеки для архивирования файла или папки. Затем используйте приведенный выше код для загрузки этого zip-файла. Возможно, это даже можно сделать в потоке памяти без создания фактического zip-файла на диске.

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

Ответ №1:

Вам нужно заархивировать папку, а затем загрузить ее как один файл. Даже Microsoft и Google делают это. 🙂 Кстати, это довольно просто, поскольку в .Net Framework есть определенные классы для архивирования, см. Пространство имен System.IO.Compression.

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

Ответ №2:

Загрузка папки невозможна!

Пожалуйста, рассмотрите возможность загрузки содержимого папки в виде сжатого файла, предпочтительно Zip-файла.

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

Я также предоставил альтернативные версии сжатых файлов, таких как Zip, 7-Zi и т.д.