簡體   English   中英

如何使用asp.net FileUpload控件存儲具有相同簽名但包含不同數據的文件

[英]How to store files that have the same signature but contain different data using asp.net FileUpload control

我正在使用ASP.NET FileUpload控件將文件上傳到服務器並存儲。

就我而言,上載的文件應具有.doc.docx擴展名,否則它將提供錯誤消息。

   if (fileUpload1.HasFile)
   {
       string fileExtension = Path.GetExtension(fileUpload1.FileName);

       if (fileExtension.ToLower() == ".doc" || fileExtension.ToLower() == ".docx")
       {
              fileUpload1.SaveAs(Server.MapPath("~/Uploads/" + fileUpload1.FileName));
              statusLabel.Text = "File Uploaded Successfully";
              statusLabel.ForeColor = System.Drawing.Color.Green;
       }
       else
       {
              statusLabel.Text = "Only files with .doc or .docx extension are allowed!";
              statusLabel.ForeColor = System.Drawing.Color.Red;
       }
}

當我上傳文件並單擊上載按鈕時,它將存儲在我的項目的以下目錄中:

~/Uploads/

假設我上傳了一個包含一些數據的doc文件( test.docx )。 它將成功上傳到服務器並保存在項目目錄==> ~/Uploads/

但是問題是,當我再次嘗試上傳具有相同簽名( test.docx )但內容不同的文件時,它成功上傳了,但是在項目Uploads目錄中,先前的文件將被刪除,並且僅顯示新文件。 但是我想保留兩個文件。

我怎么解決這個問題?

正如Lanorkin所建議的那樣,您需要創建一種方法來重命名文件,然后將其保存到目錄中。

因此,在您的代碼中包括為文件創建唯一名稱的方法:

var FileExtension = Path.GetExtension(FileUpload1.PostedFile.FileName).Substring(1); 

fileUpload1.SaveAs(Server.MapPath("~/Uploads/" + Guid.NewGuid().ToString("N") + "." + FileExtension);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM