這個範例我在政治大學也常在用,就是每次書報討論兩千字心得的作業上傳。
重點:
1.Request.Files:是指這網頁上有多少檔案要上傳的集合,所以我們可以用Request.Files.Count抓到到底有多少個。
2.利用for loop 搭配 Page.Form.FindControl (類似抓取大型控制項的FindControl) 把網頁上每個FileUpload都抓到。
前端畫面:
拉進三個FileUpload + 一個按鈕。
後置程式碼如下:
protected void Button1_Click(object sender, EventArgs e)
{
//表示第一次執行
if (IsPostBack)
{
//檔案儲存目錄
string savePath = "C:\\ASP.FileUpload\\";
//檔案檔名check
string pathToCheck = null;
//Request.Files是指所有頁面上user要上傳的檔案之集合
for (int i = 1; i < Request.Files.Count; i++)
{
//用for加上FindControl抓取頁面上每一個fileUpload控制項
FileUpload myFL = (FileUpload)Page.Form.FindControl("FileUpload" + i);
if (myFL.HasFile)
{
string fileName = myFL.FileName;
pathToCheck = savePath + fileName;
//這部分是檔案名稱衝突修改的部分
if (System.IO.File.Exists(pathToCheck))
{
int my_counter = 2;
string tempfileName = null;
while (System.IO.File.Exists(pathToCheck))
{
tempfileName = my_counter.ToString() + "_" + fileName;
pathToCheck = savePath + tempfileName;
my_counter += 1;
}
Response.Write("檔案發生檔名重複修改如下:" + tempfileName.ToString());
}
myFL.SaveAs(pathToCheck);
}
}
Response.Write("OK");
}
}
留言列表