2013-03-14 6 views
2

이미지 업 로더를 만들려고했지만 찾아보기를 클릭하여 이미지를 선택한 다음 양식을 제출하면 HttpPostedFileBase가 null입니다. 구현이 누락 되었습니까? 도와주세요.이미지를 업로드 할 수 없습니다 (HttpPostedFileBase Null입니다)

보기

<form action="Home/UploadImage" method="POST"> 
    <p> 
     <input type="file" accept="image/x-png, image/gif, image/jpeg" name="projectBgImage" id="projectBgImage"/> 
    </p> 
    <input type="submit" value="submit"/> 
</form> 

홈 컨트롤러

public ActionResult UploadImage(HttpPostedFileBase projectBgImage) 
    { 
     return View(); 
    } 

디버그 이미지

enter image description here

+2

http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx –

+0

@Ravi, +1. 원하는 경우이 링크를 내 질문에 추가하십시오. –

답변

7
[HttpPost] 주석

[HttpPost] 
public ActionResult UploadImage(HttpPostedFileBase projectBgImage) 
{ 
    return View(); 
} 

추가 정보와

@using (Html.BeginForm("UploadImage", "Home", FormMethod.Post, new { id = "form", enctype="multipart/form-data" })) 
{ 
    <p> 
     <input type="file" accept="image/x-png, image/gif, image/jpeg" name="projectBgImage" id="projectBgImage"/> 
    </p> 
    <input type="submit" value="submit"/> 
} 

및 실행 방법 :

나는이 같은 BeginForm HTML 헬퍼를 사용하는 것이 좋습니다 enctype attribute에게 form 요소

<form action="Home/UploadImage" method="POST" enctype="multipart/form-data"> 

를 추가 좋은를 Phil Haack의 블로그 게시물 Asp.net MVC Upload

enctype 속성이 필요한보기에서
+0

Adiyashi 내가 답변을 편집하고 링크를 추가했습니다 –

+0

정말 고맙습니다! 더 나은 구현 방법을 제안 해 주셔서 감사합니다. –

+0

@ JobertEnamno 답변을 수락하십시오 –

2

는 액션 방식의 상단에 multipart/form-data

using (Html.BeginForm("ImageUp", "YourUpController", FormMethod.Post, new { enctype = "multipart/form-data" })) 

둘째, 로 설정해야 당신이 HTTPPOST 속성이 있는지 확인하십시오.

[HttpPost] 
public ActionResult SaveFile(HttpPostedFileBase projectBgImage) 
관련 문제