#asp.net #ajax #file-upload #updatepanel
#asp.net #ajax #загрузка файла #панель обновления
Вопрос:
У меня есть элемент управления изображением и элемент управления загрузкой файлов в .NET 2.0 (VS.NET 2008) форма. Как только пользователь выбирает файл изображения в элементе управления загрузкой файлов, я хочу, чтобы изображение появилось в элементе управления изображением формы. Каким может быть способ сделать это?
(Кажется, поддерживается только загрузка файла события ‘onChange’, и я недостаточно знаю javascript для обновления Image1.URL на основе содержимого FileUpload).
Спасибо, Чак.
Ответ №1:
Вам нужно загрузить Asynchronously
, и вы могли бы попробовать AJAX AsyncFileUpload
, и это то, что вы ищете… http://asp.net-informations.com/ajax/ajax-AsyncFileUpload.htm
Комментарии:
1. Мне еще предстоит это опробовать, но это кажется близким к тому, что мне нужно.
Ответ №2:
Вы ищете что-то вроде предварительного просмотра? Вы можете показать изображение пользователю только после того, как файл был загружен. Я почти уверен, что пользователь должен активно это делать (в противном случае вы могли бы попытаться прочитать всю файловую систему из браузера)
Комментарии:
1. Я не хочу предварительный просмотр. Я хочу, чтобы изображение появлялось в элементе управления изображением при выборе файла в элементе управления загрузкой файлов.
2. То есть до того, как пользователь нажмет «загрузить»? На мой взгляд, это предварительный просмотр, и это невозможно.
Ответ №3:
Я думаю, что это хороший пример:
http://www.codeproject.com/KB/ajax/AJAXUpload.aspx
это тоже хорошая отправная точка:
http://www.eggheadcafe.com/community/aspnet/2/10204276/how-to-display-image-when-upload-image.aspx
или здесь:
http://www.eggheadcafe.com/community/aspnet/2/10236947/image-upload-and-display.aspx
обновлено
protected void Button4_Click(object sender, EventArgs e)
{
string strExtn;
string strpostedfile;
strpostedfile = fileuploading.PostedFile.FileName;
strExtn = System.IO.Path.GetExtension(strpostedfile);
strExtn = strExtn.ToLower();
string strEx = Path.GetExtension(fileuploading.PostedFile.FileName).ToLower();
String filename = Path.GetFileName(fileuploading.FileName);
filename = filename.Remove(filename.Length - strEx.Length);
fileuploading.SaveAs(Server.MapPath("~/Photos/") filename);
uploadImage.ImageUrl = "~/Photos/" filename;
}
Страница:
<asp:FileUpload ID="fileuploading" runat="server" />
<asp:Button ID="Button4" runat="server" onclick="Button4_Click" Text="Button" />
<br />
<asp:Image ID="uploadImage" runat="server" />
Комментарии:
1. В этом примере требуется дополнительный элемент управления кнопкой, не так ли? Я хотел избежать дополнительного нажатия кнопки.