重點:
1.使用System.IO.命名空間的File.Exists()方法去偵測WebServer端目錄底下,是否有相同檔名。
2.while(System.IO.File.Exists(pathToCheck)):因為可能不只有一個檔名相同而已所以用while將相同檔名都改,然後數字會遞增去改所以每個都會不同數字。
後置程式碼:
protected void Button1_Click(object sender, EventArgs e)
{
//宣告保存檔案路徑
string savePath = "C:\\ASP.FileUpload\\";
//如果user有選擇檔案
if (FileUpload1.HasFile)
{
//取得user上傳檔案檔名
string fileName = FileUpload1.FileName;
//要確認是否有檔案同名
string pathToCheck = savePath + fileName;
string tempfileName = "";
//偵測是否有同樣檔名的檔案
if (System.IO.File.Exists(pathToCheck))
{
int my_counter = 2;
//如果有就把相同檔名的檔案改掉,因為可能不只有一個檔名相同而已,所以用while相同都要改,然後數字會遞增去改
while(System.IO.File.Exists(pathToCheck))
{
tempfileName = my_counter.ToString() + "-" + fileName;
pathToCheck = savePath + tempfileName;
my_counter += 1;
}
//把修改好的檔名丟給filename
fileName = tempfileName;
Response.Write("由於檔名發生衝突,故檔名修改如下:" + fileName);
}
//savePath = savePath + filename
savePath += fileName;
//將檔案保存在設定路徑中
FileUpload1.SaveAs(savePath);
Response.Write("檔案上傳成功");
}
//沒有選擇檔案
else
{
Response.Write("未選擇檔案");
}
}