2013-08-01 89 views
0

我需要將圖片保存在asp.net mvc應用程序的datebase中。我在表MimeType(nvarchar [50])和ImageData中創建了一個字段,用於將圖片保存在byte []中。我使用ado.net。我將圖像保存在如下表格中:C#(Asp.net MVC 2)從視圖中的byte []顯示圖像

private DBAppl db = new DBAppl(); 
      public void CreateNewCar(newcar Car, HttpPostedFileBase image) 
      { 
        if (image != null) 
         { 

          Car.mimetype = image.ContentType; 
          Car.ImageData = new byte[image.ContentLength]; 
          image.InputStream.Read(Car.ImageData, 0, image.ContentLength);      

         } 
       db.AddTonewcars(Car); 
       db.SaveChanges(); 
      } 

圖片正常保存在表格中。然後我用手機在View中顯示我的圖像。我在控制器

public FileContentResult GetImage(int newcarid) 
     { 
      DBAppl db = new DBAppl(); 
      newcar car = (from p in db.newcars 
           where p.newcarid == newcarid 
           select p).First(); 
      return File(car.ImageData, car.mimetype.Trim()); 
     } 

在視圖中創建方法我插入的代碼:

<% if (Model.ImageData == null) 
{ %> 
None 
<% } 
else 
{ %> 
<img src="<%= Url.Action("GetImage", "Cars", new { Model.newcarid }) %>" alt="<%: Model.description %>" /> <% } %> 

但圖像沒有被加載,只中高音。幫助,我做錯了什麼?我嘗試使用HTML頁面的索引代碼中的鏈接,但是讀取該圖片有錯誤。我查看了mozilla「關於頁面的信息」,看到那個頁面有我的圖片(778 kb),但它是0px x 0px。

回答

1

,請返回文件

HttpContext.Response.AddHeader("Content-Length"("Content-Type", "image/jpeg")); 

或無論你正在訪問你的頭前設置頭。

使用圖像/ JPEG爲JPG文件

谷歌的其他擴展名和文件的TPE。

0

我解決了這個問題是這樣的:

public FileContentResult GetImage(int newcarid) 
     { 
      DBAppl db = new DBAppl(); 
      newcar car = (from p in db.newcars 
           where p.newcarid == newcarid 
           select p).First(); 
      return File(car.ImageData**.ToArray()**, car.mimetype.Trim()); 
     } 

在類:

public void CreateNewCar(newcar Car, HttpPostedFileBase image) 
      { 
      **var car = new newcar();** 
      if (image != null) 
       { 

        car.name = Car.name; 
        car.date = DateTime.Now; 
        car.color = Car.color; 
        car.picmimetype = image.ContentType; 

        int length = image.ContentLength; 
        byte[] buffer = new byte[length]; 
        image.InputStream.Read(buffer, 0, length); 
        car.ImageData = buffer; 

       } 
      db.AddTonewcars(car); 
     db.SaveChanges();