2011-07-01 10 views
0
 int count = 4; 
    for (int i = 0; i < count; i++) 
    { 
     if (FileUpload1.HasFile) 
     { 

     } 
    } 

私は4つのファイルで4つのdiff FileUploadのコントロールをアップロードするのですが、私のif()でFileUpload1,2,3,4を取得する方法は、コードの残りの部分はすべて同じようにどのようにフォームですか?ループ内で4つのファイルを1つのループにアップロードするにはどのように制御IDを取得するのですか?

答えて

3

あなたは、アレイ内のコントロールを配置する必要があります。

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

は、なぜあなたはループを使用していますか?これを行うことはできませんでしたか?

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

これを行う方法が分かっているのは、何らかの種類の表を使用していることだけです。これは、FileUploadNよりも優れた名前を持つことができるので、これは良いことです(このコードをコンパイルしていないので、おそらくタイプミスがありますが、要点は分かります)。

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

意味がありますか?

+0

のおかげです。 – user614946

0

は、複数のファイル

を取得するための別のアプローチがある
 HttpFileCollection Files = Request.Files; 
     for (int i = 0; i < Files.Count; i++) 
     { 
      HttpPostedFile PostedFile = Files[i]; 
      if (PostedFile.ContentLength > 0) 
      { 
       //upload file 
      } 
     } 

MSDNの完全な記事は私が仕事を得たhere

関連する問題