2011-03-06 4 views
2

사용자가 동일한 이름으로 파일을 다운로드 할 수 있도록 업로드 된 파일 이름을 유지하려고합니다. 하지만 어떻게 구현할 수 있습니까? 내가 볼 수있는 한 가지 옵션은 고유 한 이름 (예 : GUID)을 가진 폴더에 각 파일을 저장하는 것입니다. 다른 옵션은 없습니까? 내가 GUID 생각ASP.NET 업로드 된 파일 이름 유지

답변

1

더 나은 옵션입니다하지만 우리는 일반적으로 파일이 그 이름 추출 할 수 있습니다 업로드 사무실 DateTime

5

에 사용 : 당신은 몇 가지 고유 한 이름으로 디스크의 파일을 저장할 수

[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는 좋은 옵션입니다.) 그런 다음이 고유 한 이름을 실제 파일 이름과 사용자와 연결하여 나중에 파일을 다운로드하려고 할 때 매핑이 있어야합니다.

+0

이것은 그의 질문이 아닙니다. 예를 들어 누군가 abc.jpg라는 파일 이름으로 파일을 업로드하고 다른 사용자가 동일한 파일 이름을 업로드하면 문제가 발생합니다. –

+0

@Muhammad Akhtar, 맞습니다. –

+0

귀하는 귀하의 답변을 다시 편집했으며 귀하는 다시 그 질문을 오해 한 것으로 생각합니다. 그가 원하는 것은 사용자가 abc.jpg라는 이름으로 파일을 업로드 한 다음 다운로드하려는 경우 동일한 이름을 사용하게됩니다. –