我正在使用 ASP.NETFileUpload
控件将文件上传到服务器并存储它。
在我的情况下,上传的文件应该有一个.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/
假设我上传了一个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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句