2
我想保留上传的文件名,以便用户可以使用相同的名称下载文件。但我该如何执行它?我看到的一个选项是将每个文件存储到具有唯一名称的文件夹(例如GUID)。任何其他选项?ASP.NET保存上传的文件名
我想保留上传的文件名,以便用户可以使用相同的名称下载文件。但我该如何执行它?我看到的一个选项是将每个文件存储到具有唯一名称的文件夹(例如GUID)。任何其他选项?ASP.NET保存上传的文件名
我觉得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是一个很好的选择),然后将这个唯一的名字与实际的文件名和用户相关联,以便稍后当他想要下载文件时,您将拥有该映射。
这不是他的问题;例如,如果有人上传文件的文件名为abc.jpg,其他用户也上传相同的文件名,那么将出现问题 – 2011-03-06 09:59:41
@Muhammad Akhtar,是的,你是正确的。 – 2011-03-06 10:00:31
再次你编辑了你的答案,我想你再次误解了这个问题。他想要的是,如果用户上传文件的名称为abc.jpg,之后如果要下载,他将使用相同的名称。 – 2011-03-06 10:10:00