как хранить элементы управления asp в массиве? - PullRequest
2 голосов
/ 07 сентября 2011

Я использую 10 asp: fileUpload для загрузки нескольких файлов

Теперь я хочу при каждой загрузке проверять, есть ли в нем файл или нет?

Для этого я взял массив как

FileUpload uploadarr[] = new FileUpload[10];

но как проверить, что он опубликовал файл или не использует 10 элементов управления как FileUpload1, FileUpload2, FileUpload3 ... FileUpload10

HttpPostedFile myFile = FileUpload1.PostedFile;

Ответы [ 3 ]

2 голосов
/ 07 сентября 2011

Вместо того, чтобы хранить каждую FileUpload в массиве, вы можете использовать свойство HttpRequest.Files , чтобы просмотреть все файлы, размещенные на странице, следующим образом:

Разметка

<div><asp:FileUpload ID="FileUpload1" runat="server" /></div>
<div><asp:FileUpload ID="FileUpload2" runat="server" /></div>
<div><asp:FileUpload ID="FileUpload3" runat="server" /></div>
<asp:Button ID="UploadFilesButton" runat="server" Text="Upload Files" OnClick="UploadFilesButton_Click" />

код

protected void UploadFilesButton_Click(object sender, EventArgs e)
{
    HttpFileCollection uploadedFiles = Request.Files;
    for (int fileIndex = 0; fileIndex < uploadedFiles.Count; fileIndex++)
    {
        HttpPostedFile uploadedFile = uploadedFiles[fileIndex];
        string fileName = System.IO.Path.GetFileName(uploadedFile.FileName);

        if (!string.IsNullOrEmpty(fileName))
        {
            //Upload file as required
            //uploadedFile.SaveAs("??");
        }
    }
}

Надеюсь, это поможет.

0 голосов
/ 07 сентября 2011

В файле .cs страницы:

protected override void OnInit(EventArgs e)
{

    for (int i = 0; i < 10; i++)
    {
        // Panel is ASP panel
        Panel.Controls.Add(new FileUpload());
    }
}

protected void Page_Load(object sender, EventArgs e)
{
    foreach (var p in Panel.Controls)
    {
        if (p is FileUpload)
            Response.Write(((FileUpload)p).FileName);
    }
}
0 голосов
/ 07 сентября 2011

С linq, попробуйте это:

var files = uploadarr.Where(x=>x.HasFile).Select(x=>x.PostedFile);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...