Как правильно использовать управление ASP.NET FileUpload

Я пытаюсь использовать управление FileUpload в ASP.NET

Вот моя текущая установка пространства имен:

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

И в моем классе, я просто использую:

FileUpload fileUpload = new FileUpload();

Однако ни один из атрибутов, которые обычно являются частью FileUpload, кажется, не доступен..., такие как.HasFile. Я пытаюсь сделать метод Нажатия кнопки в коде позади, я заметил, что большая часть использования.HasFile находится в коде впереди, однако это было мое понимание, что это не должно иметь значения.

Кто-либо знает почему?

21
задан Jan Wikholm 13 January 2012 в 11:00
поделиться

4 ответа

Элементы управления ASP.NET лучше размещать в файле разметки aspx . Это предпочтительный способ работы с ними. Так что добавьте на свою страницу элемент управления FileUpload . Убедитесь, что у него есть все необходимые атрибуты, включая ID и runat :

<asp:FileUpload ID="FileUpload1" runat="server" />

Экземпляр FileUpload1 будет автоматически создан в автоматически сгенерированном / обновленном * .designer. cs, который является частичным классом вашей страницы. Обычно вам не нужно беспокоиться о том, что в нем, просто предположите, что любой элемент управления на странице aspx создается автоматически.

Добавьте кнопку, которая вернет сообщение:

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

Затем перейдите в свой файл * .aspx.cs, где у вас есть код, и добавьте обработчик нажатия кнопки. В C # это выглядит так:

protected void Button1_Click(object sender, EventArgs e)
{
  if (this.FileUpload1.HasFile)
  {
    this.FileUpload1.SaveAs("c:\\" + this.FileUpload1.FileName);
  }
}

И все. Все должно работать как положено.

57
ответ дан 29 November 2019 в 06:38
поделиться

Добавление элемента управления FileUpload из кода позади должно работать просто отлично, где свойство HasFile должно быть доступно (например, в событии Click).

Если свойства недоступны (либо в виде ошибки компилятора, либо через intellisense), вероятно, вы ссылаетесь на другую переменную, чем думаете.

1
ответ дан 29 November 2019 в 06:38
поделиться

Я заметил, что когда интеллект не работает для объекта, обычно возникает ошибка где-то в классе над строкой, над которой вы работаете.

Другой вариант заключается в том, что вы не создали экземпляр объекта FileUpload как переменную экземпляра. убедитесь, что код:

FileUpload fileUpload = new FileUpload();

не находится внутри функции в вашем коде.

0
ответ дан 29 November 2019 в 06:38
поделиться

Вместо инстанцирования FileUpload в вашем файле code behind, просто объявите его в вашем файле разметки (файл.aspx):

<asp:FileUpload ID="fileUpload" runat="server" />

Тогда вы сможете получить доступ ко всем свойствам элемента управления, таким как HasFile.

1
ответ дан 29 November 2019 в 06:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: