int count = 4;
for (int i = 0; i < count; i++)
{
if (FileUpload1.HasFile)
{
}
}
我打算上傳4文件的差異FileUpload控件,但如何獲得FileUpload1,2,3,4在我的if()代碼的其餘部分將我相同的形式所以如何?如何在循環中獲取控件ID以在單個循環中上傳4個文件?
int count = 4;
for (int i = 0; i < count; i++)
{
if (FileUpload1.HasFile)
{
}
}
我打算上傳4文件的差異FileUpload控件,但如何獲得FileUpload1,2,3,4在我的if()代碼的其餘部分將我相同的形式所以如何?如何在循環中獲取控件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上的完整文章是here
感謝我得到了這份工作完成。 – user614946