2013-06-26 1 views
1

사람의 이미지를 업로드하고 사용자 지정 링크 (폴더)에 저장하기 위해 mvc4 면도기 웹 응용 프로그램을 개발했습니다.fileupload 컨트롤을 사용하여 이미지를 업로드하고 다른 위치에 저장하는 방법

파일 업로드 컨트롤, 텍스트 상자 및 버튼이 있습니다. 파일 업로드 컨트롤을 사용하여 이미지를 업로드 할 때 "D :/Employee/ContactImage"와 같은 사용자 지정 위치에 저장해야하며 파일 이름은 텍스트 상자에 입력 한 값이어야합니다. 여기

<div id="partial"> 
      @{Html.RenderPartial("WholeSaleUserDetail");} 
      @using (Html.BeginForm("FileUpload", "WholeSaleTrade", new RouteValueDictionary(new { @class = "mainForm" }), FormMethod.Post, new { enctype = "multipart/form-data" })) 
      { 
       <input name="uploadFile" type="file" id="fileUpload"/> 
       <input type="submit" value="Save Image" id="saveImage" /> 
       <input type="text" id="imageName"> 

      } 
      <div style="width: 200px; height: 200px;"> 
       <img id="empimage" src="../../Images/no_image.jpg" alt="" /></div> 
     </div> 

을보기에서 코드 여기 컨트롤러 클래스의 코드가

[HttpPost] 
    public ActionResult FileUpload(HttpPostedFileBase uploadFile, string imageName) 
    { 
     var j = new ImageJob(uploadFile, "~/Img/resize/" + imageName, new ResizeSettings(300, 300, FitMode.Stretch, "Jpeg")); 
     j.Build(); 
     string imageUrl = PathUtils.GuessVirtualPath(j.FinalPath); 

     return Json(imageUrl, JsonRequestBehavior.AllowGet); 
    } 

내가 여기서 할 필요가 파일 이름으로 텍스트 상자의 값을 전달하고 저장입니다 주어진 위치의 이미지. 제발 도와주세요.

+1

발생한 문제는 무엇인가 (그것은 속성이 있습니다)? –

+0

주요 문제는 내가 파일 이름으로 텍스트 상자 값을 컨트롤러에 전달할 수 없다는 것입니다. in controller class 파일 이름이 매개 변수 이름 ** "imageName"** – sanzy

+1

에 지정되어야합니다. 이름 = "imageName"을 입력에 추가하려고 시도 했습니까? FormCollection이 포스트 백되었는지 확인하는 것은 어떻습니까? – Slicksim

답변

0

코드에 문제가있어서 입력 필드의 이름이 컨트롤러 매개 변수와 일치해야합니다. 귀하의 경우에는 HTML 입력에 이름이 없습니다. 시도해보십시오.

<div id="partial"> 
     @{Html.RenderPartial("WholeSaleUserDetail");} 
     @using (Html.BeginForm("FileUpload", "WholeSaleTrade", new RouteValueDictionary(new { @class = "mainForm" }), FormMethod.Post, new { enctype = "multipart/form-data" })) 
     { 
      <input name="uploadFile" type="file" id="fileUpload"/> 
      <input type="submit" value="Save Image" id="saveImage" /> 
      <input type="text" id="imageName" name="uploadFile"> 

     } 
     <div style="width: 200px; height: 200px;"> 
      <img id="empimage" src="../../Images/no_image.jpg" alt="" /></div> 
    </div> 

및 컨트롤러 당신이 게시 된 파일을 통해 파일 이름을 얻을 수 있습니다

[HttpPost] 
public ActionResult FileUpload(HttpPostedFileBase uploadFile) 
{ 
    var j = new ImageJob(uploadFile, "~/Img/resize/" + uploadFile.FileName, new ResizeSettings(300, 300, FitMode.Stretch, "Jpeg")); 
    j.Build(); 
    string imageUrl = PathUtils.GuessVirtualPath(j.FinalPath); 

    return Json(imageUrl, JsonRequestBehavior.AllowGet); 
}