如何在循环中获得控制id以在单个循环中上传4个文件

本文关键字:循环 单个 4个 文件 控制 id | 更新日期: 2023-09-27 18:00:49

     int count = 4;
    for (int i = 0; i < count; i++)
    {
        if (FileUpload1.HasFile )
        {
        }
    }

我正在通过4个不同的FileUpload控件来上传4个文件,但如何在我的if((中获得FileUpload1,2,3,4其余的代码都将是相同的形式,那么如何呢?

如何在循环中获得控制id以在单个循环中上传4个文件

您需要将控件放在一个数组中:

FileUpload[] uploads = { FileUpload1, FileUpload2, ... };

为什么要使用循环?你不能这样做吗?

if (FileUpload1.HasFile) {
    DoFileUpload(FileUpload1);
}
if (FileUpload2.HasFile) {
    DoFileUpload(FileUpload2);
}
if (FileUpload3.HasFile) {
    DoFileUpload(FileUpload3);
}
if (FileUpload4.HasFile) {
    DoFileUpload(FileUpload4);
}
private void DoFileUpload(FileUpload fileUploadControl) {
    // perform file uploading...
}

我知道如何做到这一点的唯一方法是使用某种类型的表。这很好,因为它可以让你拥有比FileUploadN更好的名称(还没有编译过这段代码,所以可能有拼写错误,但你明白要点了(。

FileUpload[] uploads = new FileUpload[] {FileUpload1, FileUpload2, FileUpload3, FileUpload4};
foreach (FileUpload upload in uploads)
{
   if (uploads.HasFile)
   {
   }
}

有道理吗?

还有另一种方法可以获得多个文件

        HttpFileCollection Files = Request.Files;
        for (int i = 0; i < Files.Count; i++)
        {
            HttpPostedFile PostedFile = Files[i];
            if (PostedFile.ContentLength > 0)
            {
                //upload file
            }
        }

关于msdn的完整文章在这里