Подтвердить что ты не робот

Загрузка файла в панель обновления AJAX без полной обратной передачи

У меня есть панель обновления, на панели обновления у меня есть контроль над файловой системой и управление кнопками, нажатие кнопки "Вкл." мне нужен файл, который я загружаю в элемент управления файловой загрузкой в ​​панели обновления.

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


У кого-нибудь есть решение этой проблемы?

Спасибо за вашу любезную помощь.....

4b9b3361

Ответ 1

Для решения этой проблемы см. следующий шаг.

  • Добавить ajax-upload в ваш подробный вид.
    • загрузчик на основе iframe, например Resource # 1.
    • Загрузка на основе Silverlight и Flash. Мне нравится этот метод, потому что для отображения текущего состояния загрузки не требуется серверная сторона script. Но в HTML5 вы можете создать это без использования какого-либо подключаемого модуля веб-браузера.
    • Коммерческий загрузчик, например Resource # 2. которые используют скрытый iframe для загрузки.
  • Загрузить файл во временное местоположение.

    • Системная реакция на временное местоположение. Затем клиент хранит временное местоположение в скрытом входе в виде подробной формы.
    • Хранить временное местоположение с помощью session_id. Вы можете сохранить его в базе данных или переменной сеанса в зависимости от вашей структуры.
  • Когда вы нажимаете кнопку "Сохранить", система переместит файлы в их реальное местоположение.

Примечание. Система автоматически удалит истекший файл из временного местоположения.

Ресурс

Обновление

Спустя почти год я просто нашел отличный сторонний сторонник для этого вопроса. Это плагин с открытым исходным кодом для jQuery. Это имя Plupload, которое позволяет загружать файлы с использованием HTML5, Silverlight, Flash или обычных форм, и предоставляет некоторые уникальные функции, такие как процесс загрузки, изменение размера изображения и загрузка каналов.

Вы можете попробовать и проверить Plupload, нажав здесь.

Ответ 2

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

Ответ 3

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

Ответ 4

Сайты, которые вы видите, которые предоставляют эту функциональность, обычно используют флеш или iframe, так что обратная передача происходит в iframe и создает иллюзию запроса ajax.

HTH

Oneshot

Ответ 5

Я пробовал swfupload (http://swfupload.org/), но имейте в виду, что вам нужно прыгать через обручи, если вы используя проверку подлинности с использованием браузеров, отличных от IE. Это, по-видимому, ошибка вспышки, и она не исправлена ​​во flash 10. Я решил не использовать ее в нашей системе из-за этой ошибки, но в остальном это отличный продукт.

Ответ 6

Я рекомендую виджет загрузчика из YUI. См. http://developer.yahoo.com/yui/uploader/

Я думаю, вы могли бы использовать его для достижения своей цели. Ваш javascript должен будет вернуть файл обратно клиенту с сервера после завершения его загрузки. Но страница не обновляется - загрузка осуществляется через flash и скрытый iframe. Загрузка, чтобы показать содержимое файла пользователю, будет через ajax.

Если пользователь не одобряет загрузку, просто сделайте еще один вызов ajax серверу, чтобы удалить файл.