【发布时间】:2011-07-09 17:59:17
【问题描述】:
我想保留上传的文件名,以便用户能够以相同的名称下载文件。但是我该如何实现呢?我看到的一个选项是将每个文件存储到具有唯一名称(例如 GUID)的文件夹中。还有其他选择吗?
【问题讨论】:
标签: .net asp.net asp.net-mvc file-upload
我想保留上传的文件名,以便用户能够以相同的名称下载文件。但是我该如何实现呢?我看到的一个选项是将每个文件存储到具有唯一名称(例如 GUID)的文件夹中。还有其他选择吗?
【问题讨论】:
标签: .net asp.net asp.net-mvc file-upload
我认为GUID 是更好的选择,但我们通常在办公室使用DateTime
【讨论】:
上传文件后,您可以提取其名称:
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
// Get the filename of the uploaded file
var fileName = Path.GetFileName(file.FileName);
var savedFilename = Guid.NewGuid().ToString();
// TODO: Associate the fileName with the savedFilename
// and probably the currently connected user in the database
// Save the file inside the Uploads folder
var path = Path.Combine(Server.MapPath("~/Uploads"), savedFilename);
file.SaveAs(path);
}
return RedirectToAction("Index");
}
您可以将文件以某个唯一名称(GUID 是一个不错的选择)存储在磁盘上,然后将此唯一名称与实际文件名和用户相关联,以便稍后当他想要下载文件时,您将拥有映射.
【讨论】: