2013-06-26 79 views
1

我開發了一個mvc4剃鬚刀web應用程序來上傳人物的圖像並將其保存在自定義文件夾中。如何使用文件上傳控件上傳圖像並將其保存在不同的位置

它有一個文件上傳控件,一個文本框和一個按鈕。當我使用文件上傳控件上傳圖片時,我需要將其保存在「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

主要問題是我無法將文本框的值作爲文件名傳遞給控制器​​。在控制器類文件名應分配給參數名稱**「imageName」** – sanzy

+1

您是否嘗試將name =「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); 
} 
相關問題