2011-08-03 48 views
0

這是多次在此處提出的問題的變體。一個例子:Display an image contained in a byte[] with ASP.Net MVC3。問題是如何從字節數組渲染圖像。從字節[]中渲染不在ASP.NET MVC3中的數據庫中的圖像

在所有這些問題,有類似我上面提供的鏈接的答案中選擇一個動作:

public FileContentResult Display(string id) { 
byte[] byteArray = GetImageFromDB(id); 
return new FileContentResult(byteArray, "image/jpeg"); 
} 

用圖像標籤與此類似:

<img src="@Url.Action("Display", new { id = Model.Id })" /> 

這是這是因爲無法通過GET請求發送字節數組,所以只需發送id即可在Action方法中進行查找。我得到這個部分,這不是問題。我想要做的是創建一個'預覽'頁面,他們可以在保存數據庫之前檢查他們的工作。他們可以看到標題,文本和圖像的佈局,並決定是保存還是返回編輯。因此,'GetImageFromDB(id)'部分將不起作用,因爲該對象尚未保存到數據庫中。

有什麼辦法可以做到這一點,或者我只需要將字節數組臨時保存在數據庫中,並以預覽頁面的方式訪問它?

回答

1

如果您想稍後顯示(作爲預覽或全尺寸圖像),您需要將上傳的文件存儲在服務器上的某個位置。無論是數據庫還是文件系統,都取決於您。因此,一旦文件上傳,您可以將其作爲臨時文件存儲在服務器上的某個位置,方法是使用一些獨特的Guid對其進行重命名,然後將此Guid返回給客戶端,以便它可以創建預覽控制器操作的操作鏈接,並通過Guid它將從臨時位置獲取文件並將其傳輸到客戶端。

+0

謝謝你的回覆。是的,我想我必須先保存它,但我沒有考慮將文件上傳到臨時文件夾,然後再上傳到數據庫。謝謝。 – adimauro