2017-08-17 69 views
0

我從數據庫這樣的檢索圖片:我怎樣才能得到的URL從base64string擺脫

public ViewResult Details(int id = 0) 
{ 
    vm.ImageToShow = Convert.ToBase64String(model.Picture) 
    return View(vm); 
} 

Picture定義:

public byte[] Picture { get; set; } 

而且我顯示在View這個樣子:

@Html.Raw("<img src=\"data:image/jpeg;base64," + Model.ImageToShow + "\" 
onclick='javascript: window.open(\"data:image/jpeg;base64," + Model.ImageToShow + "\")'/>") 

當我點擊它。它會打開一個新選項卡並顯示圖像,但該URL顯示所有base64字符串,如data:image/jpeg;base64,iVBORw0KGg.....。我怎樣才能擺脫這一點,並顯示與圖像名稱或其他任何短的網址?

+0

有一個動作返回到圖像 –

+0

@RyanSearle我已經更新了我的問題,我發現我的操作方法也。 – SteveCode

+0

如果你不想要Base64,那麼明顯的答案是......不要使用它。在結果中發送圖像的URL而不是base64字符串。然而,它看起來並不像你實際上有一個URL,因爲你將它存儲爲一個字節數組。它有沒有來自數據庫?不知道你真的能夠克服這一點,除非下面的答案會起作用。無論如何,base64有什麼問題?有用。 – ADyson

回答

2
public ViewResult Details(int id = 0) 
{ 
    //vm.ImageToShow = Convert.ToBase64String(model.Picture) 
    vm.ID = id; 
    return View(vm); 
} 

public FileResult Image(int id = 0) 
{ 
    .. 
    return File(model.Picture,"image/jpeg"); 
} 


@Html.Raw("<img src=\"image?id=" + Model.ID + "\" 
onclick='javascript: window.open(\"image?id=," + Model.ID + "\")'/>")