我使用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
目录中,前一个文件将被删除,只有新文件才会出现。但我想保留这两个文件。
我该如何解决这个问题?
答案 0 :(得分:0)
正如Lanorkin建议您需要创建一个方法来重命名该文件,然后将其保存到目录中。
因此,在您的代码中包含为文件创建唯一名称的方法:
var FileExtension = Path.GetExtension(FileUpload1.PostedFile.FileName).Substring(1);
fileUpload1.SaveAs(Server.MapPath("~/Uploads/" + Guid.NewGuid().ToString("N") + "." + FileExtension);