close

這個範例我在政治大學也常在用,就是每次書報討論兩千字心得的作業上傳。

 

重點:

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");
}
}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 melomelo1988 的頭像
    melomelo1988

    melo 唐

    melomelo1988 發表在 痞客邦 留言(0) 人氣()