2012-05-26 70 views
0

我的任務是將圖像動態保存到數據庫中,每當用戶瀏覽img並點擊保存按鈕 我使用的是asp.net mvc3,剃鬚刀視圖和mysql是我的數據庫 我我試圖將瀏覽過的img文件傳遞給控制器​​,然後在控制器中將其轉換爲字節格式 並將其保存到db.But中,當我放置一個braekpoint時它顯示爲空,表示該文件不適合控制器 任何人都可以請幫我在這無法將圖像保存到我的sql數據庫

下面是我的視圖和控制器

$(DOC ument)。就緒(函數(){

 $("#photos").kendoUpload(); 
     $("#save").click(function (event) { 
      alert("started"); 
      url = 'Home/Details'; 
      var b; 

      $.ajax({ 

       type: "POST", 

       url: '/Home/Details', 
       data: { b: $('#photos').load(url) }, 

       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (str) { 
        alert("hai"); 
        alert(str.st); 
       } 
      }); 



     }); 

    }); 

控制器:

 public ActionResult Details(HttpPostedFileBase b) 
    { 

     try 
     { 
      b = Request.Files[1]; 
      byte[] imageSize = new byte[b.ContentLength]; 
      b.InputStream.Read(imageSize, 0, (int)b.ContentLength); 
      Image g = new Image(); 



      g.Img = imageSize; 

      dbContext.Add(g); 
      dbContext.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 
     catch 
     { 
     } 
     var str = new { st = "saved" }; 
     return Json(str, JsonRequestBehavior.AllowGet); 
    } 

} 

回答

0
  1. 無法通過標準的AJAX上傳文件
  2. 的​​返回值是不加載的內容 - 它返回jquery對象。所以你試圖發佈jquery對象,而不是圖像數據。
+0

感謝您的建議,請問如何使用jQuery或ajax功能發佈圖片數據.... – sahithi

+0

感謝您的建議,請問如何使用jQuery或ajax功能發佈圖片數據.... – sahithi

1

首先我不認爲你可以使用Ajax提交文件,因爲它違反了JavaScript安全模型。您將需要使用其他方式發佈它的Ajax方式。下面是一些jQuery插件的ajax文件上傳:

http://www.webdeveloperjuice.com/2010/02/13/7-trusted-ajax-file-upload-plugins-using-jquery/

如果你想使用常規的表單POST,那麼你就必須設置表單元素的加密屬性爲「multipart/FORMDATA」其他服務器只發送文件名而不是文件本身。

+0

感謝您的鏈接..我會看到它 – sahithi

相關問題