Каков наилучший способ загрузить файл через HTTP POST с помощью веб-формы?

В основном, что-то лучше, чем это:

<input type="file" name="myfile" size="50">

Прежде всего, browseкнопка выглядит по-разному в каждом браузере. В отличие от submitкнопки на форме, вы должны придумать какой - нибудь хакерский способ ее оформления.

Во-вторых, нет индикатора прогресса, показывающего, сколько файлов загружено. Обычно вам нужно реализовать какой-либо способ на стороне клиента, чтобы отключить несколько отправок (например, изменить кнопку отправки на отключенную кнопку, показывающую «Отправка формы ... пожалуйста, подождите.») Или высветить гигантское предупреждение.

Есть ли хорошие решения для этого, которые не используют Flash или Java?

Яаков : Этот продукт выглядит как раз то, что я ищу, но его стоимость составляет 1000 долларов, и это специально для. ASP.NET. Существуют ли какие-либо проекты с открытым исходным кодом, которые охватывают такую ​​же или аналогичную функциональность?

15.08.2008 04:54:05
4 ОТВЕТА
РЕШЕНИЕ

Ящики для загрузки файлов - это то, где мы сейчас находимся, если вы не хотите использовать другие технологии, такие как Flash, Java или ActiveX.

С простым HTML вы в значительной степени ограничены описанным опытом (без индикатора выполнения, двойной отправки и т. Д.). Если вы хотите использовать некоторый JavaScript, вы можете решить некоторые из проблем, предоставив отзыв о том, что загрузка идет, и даже показывая прогресс загрузки (это взлом, потому что вам не нужно делать полный обход сервер и обратно, но хотя бы работает).

Если вы хотите использовать Flash (который доступен практически везде и на многих платформах), вы можете решить практически все эти проблемы. Быстрый поиск в Google показал два таких компонента, оба из которых бесплатны и имеют открытый исходный код. Я никогда не использовал ни одного из них, но они хорошо выглядят. Кстати, Flash тоже не без проблем, например, при использовании многофайловой программы для загрузки слайдов браузер постоянно зависал на мне :-(

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

НТН

9
15.08.2008 07:54:33

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

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

0
15.08.2008 05:56:22

Вы можете взглянуть на скрипт Fancy Upload . Хотя он использует вспышку, он все равно выглядит великолепно.

1
15.08.2008 07:58:28

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

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

В настоящее время существуют различные обходные пути, но они различаются между IE и FX (я не знаю о Safari, Opera и т. Д.).

Посмотрите, что http://www.gmail.com делает в IE и FX, когда вы прикрепляете что-либо к электронному письму.

Я хочу видеть эту мусорную кнопку «Обзор» - она ​​говорит мне, что я не пропускаю ничего неожиданного.

1
3.04.2013 07:47:51