2016-07-21 1 views
0

사용자가 사진을 업로드해야하며 파일 크기가 2MB를 초과하면 오류 메시지가 표시되어야합니다. 내가 가진 도전은 그것이 완전히 업로드되지 않는 한 사진의 크기를 알 수 없다는 것입니다 (가능한 경우 알려주세요). 그래서 파일이 업로드되면 나는보기를 잃어 버렸기 때문에 동일한보기에 메시지를 표시하기 위해 해야합니까? 또는 일부 Jquery 팝업을 통해 메시지를 표시 할 수 있으면 필요 충분합니다 (하지만 MVC 컨트롤러에서 호출하는 방법? 사용자가 제출 단추를 클릭하면 클라이언트 측에서 파일 크기를 확인할 수 있습니까?). 이?사용자가 업로드 한 파일이 크기 제한을 초과 한 후보기에 오류를 표시하는 방법은 무엇입니까?

[HttpPost] 
    public ActionResult Index(BackgroundImage image) 
    { 
     if (image != null && image.File.ContentLength > 0) 
     { 
      var fileName = Path.GetFileName(image.File.FileName); 
      if (image.File.ContentLength > 2080) 
      { 
       // need to show error on view or show pop message on client side 
      } 


      var path = Path.Combine(Server.MapPath("~/Content/images"), fileName); 
      image.File.SaveAs(path); 
     } 

     return this.RedirectToAction("Index", "ItemDataPhoto", new { id = image.backGroundId }); 
    } 
+0

저는 업로드하기 전에 파일 크기를 알 수있는 DropzoneJS를 사용합니다. 파일을 업로드하지 않고 오류 메시지를 표시 할 수 있습니다 (파일이 다른 파일 형식이 아닌 사진인지 확인할 수도 있음). http://www.dropzonejs.com/ – Narxx

+0

'ModelStateError'를 추가하고 뷰를 반환하십시오. 그러나 유효성 검사 속성을 사용하여 클라이언트 및 서버 측 유효성을 확인할 수도 있습니다. 예제는 [ASP.NET MVC의 클라이언트 측 파일 업로드 크기 유효성 검사] (http://www.bradwestness.com/2014/09/24/client-side-file-upload-validation/)를 참조하십시오. –

답변

0

모델 상태에 오류를 추가하고 뷰를 반환 할 수 있습니다.

if (image.File.ContentLength > 2080) 
{ 
    ModelState.AddModelError(string.Empty,"File size is too big"); 
    return View(); 
} 

는 오류 메시지를 표시하기 위해보기에서 ValidationSummary 도우미를 사용하고 있는지 확인하십시오.

@Html.ValidationSummary(false) 
관련 문제