2016-09-29 4 views
0

Ich rette hochgeladene Bilder in meine Datenbank von HttpPostedFileBase wie folgt verwendet:Wie wird das Bild angezeigt, das in MVC View als Datenbank in der Datenbank gespeichert ist?

private void Upload(HttpPostedFileBase file) 
{ 
    if (file != null && file.ContentLength > 0) 
    { 
     // save the file to hard drive, we can delete it later 
     var FileName = Path.GetFileName(file.FileName); 
     var FilePath = Path.Combine(Server.MapPath("~/Content/Images/Uploads/"), FileName); 
     file.SaveAs(FilePath); 

     byte[] FileBytes; 
     using (var Fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) 
     { 
      using (var Reader = new BinaryReader(Fs)) 
      { 
       FileBytes = Reader.ReadBytes((int)Fs.Length); 
      } 
     } 

     OrtundEntities db = new OrtundEntities(); 
     ImageModel Image = new ImageModel 
     { 
      Data = FileBytes, 
     }; 
     db.Images.Add(Image); 
     db.SaveChanges(); 

     //System.IO.File.Delete(filePath); 
    } 
} 

So, jetzt habe ich die Datei Bytes in der Datenbank gespeichert.

Klar kann ich nicht ein HTML-Tag verwenden <img das Bild anzuzeigen, so was Liefermechanismus soll ich hier verwenden? Soll ich lieber die Datei behalten und den Dateipfad zusammen mit (oder anstelle von) dem Byte-Array speichern?

+0

Dies wurde bereits gefragt worden, Ihnen die Antwort hier sehen können: http://stackoverflow.com/ Fragen/17952514/mvc-How-to-Display-ein-Byte-Array-Image-from-Modell –

Antwort

0

Sie können die folgenden Schritte aus

  1. die byte[] zu Base64-String konvertieren, hier ein sample wie
  2. Verwendung object Tag oder img konvertieren das Bild anzuzeigen

sollte Ihr Code aussehen wie:

var base64 = Convert.ToBase64String(bytes); // bytes is the binary data converted to byte array 

dann Ihrer Ansicht nach

<img alt="" src='@(string.Format("data:image/jpeg;base64,{0}",Model.Base64))'/> 

oder

<object data='@(string.Format("data:image/png;base64,{0}",Model.Base64))'></object> 

hoffe, dies wird Ihnen helfen

Verwandte Themen