Обработка нескольких дополнительных загрузок файлов с помощью C # - .NET - PullRequest
1 голос
/ 27 мая 2011

У меня есть 8 разных файлов, которые я хочу загрузить.

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

WebForm: <p> Thumb 1:<br /> <asp:FileUpload ID="img1sml" type="file" name="img1sml" runat="server" /> </p> <p> Image 1:<br /> <asp:FileUpload ID="img1" type="file" name="img1" runat="server" /> </p>...

CodeBehind: if (!string.IsNullOrWhiteSpace(img1sml.FileName)) { img1sml.PostedFile.SaveAs(Server.MapPath("~/Images/" + img1sml.FileName)); img1.PostedFile.SaveAs(Server.MapPath("~/Images/" + img1.FileName)); // Create command comm = new SqlCommand("INSERT INTO news (title, img1sml, img1, img1sml) VALUES (@Title, @img1sml, @img1)", conn); // Add command parameters

Я хотел бы иметь возможность проверить (эффективным способом), является ли каждое из полей загрузки файла 8 пустым или нет. Если они пусты, я бы хотел пропустить загрузку файла и вставку БД и перейти к следующему файлу.

Как бы вы порекомендовали мне это сделать?

Большое спасибо за любые советы с этим.

1 Ответ

3 голосов
/ 27 мая 2011

Вы можете просмотреть коллекцию опубликованных файлов в объекте запроса, который называется Request.Files

    foreach (string key in Request.Files)
    {
        HttpPostedFile file = Request.Files[key];
        if (file.ContentLength != 0)
        {
          file.SaveAs(Server.MapPath("~/Images/" + file.FileName));
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...