Обновляет элемент управления изображением, как только файл выбран в элементе управления загрузкой файлов в ASP.NET

#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. В этом примере требуется дополнительный элемент управления кнопкой, не так ли? Я хотел избежать дополнительного нажатия кнопки.