如何在循环中获得控制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其余的代码都将是相同的形式,那么如何呢?
您需要将控件放在一个数组中:
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的完整文章在这里