开发者

how to get control id in loop to upload 4 file in a single loop?

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

        }
    }开发者_如何学编程

i am tring to upload 4 file by 4 diff FileUpload controls but how to get FileUpload1,2,3,4 in my if() the rest of the code will me same form all so how to?


You need to put the controls in an array:

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


Why are you using a loop? Couldn't you do this?

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...
}


Only way I know how to do this is using a table of some sort. This is good also because it lets you have better names than FileUploadN (haven't compiled this code, so there are probably typos, but you get the gist).

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

Make sense?


There is another approach to get multiple files

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

Complete article on msdn is here

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜