Обновите образ клиента после загрузки с помощью элемента управления AsyncFileUpload в AjaxControlToolkit

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

Я пробовал событие OnClientUploadComplete, которое получает параметры отправителя и args, но второй параметр имеет только имя файла (без относительного URL-адреса), длину, но не имя файла после сохранения на сервере.

Я также попробовал ScriptManager.RegisterClientScriptBlock и вызвал свою собственную функцию, чтобы передать URL-адрес, но по какой-то причине я не могу выбрать элемент управления img с помощью jquery, похоже, что этот мир кода выполняется в другом экземпляре страницы ... Точно сказать не могу.

Пожалуйста, если у кого-то есть решение или предложение, я ценю ваш ответ.

Заранее спасибо.


person dev-cu    schedule 23.09.2010    source источник


Ответы (3)


Поместите тот же элемент управления AsyncFileUpload в невидимый div или добавьте следующие атрибуты в тег своей страницы:

enctype="multipart/form-data" method="post"
person Andrey    schedule 17.11.2010

Скрипт выполняется внутри iframe, вы должны найти элемент управления с помощью top.getElementById ()

person Estanislao    schedule 30.12.2010

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

Затем получите сгенерированное имя файла со стороны клиента, вы можете использовать обратный вызов в том же сеансе и получить имя файла, а затем применить его к элементу управления изображением

    $('image').attr('src','displayimage.aspx?fileName=' + filename);

чтобы получить поток файла изображения и отобразить его. Немного сложно, но это работает.

person Arif    schedule 03.02.2014