2017-06-07 21 views
0

我有存儲在數據庫中的圖像數據。我想在後面的代碼中檢索這些數據,並將其傳遞給aspx頁面,以便它可以在某些JS中用作參數。傳遞圖像數據到客戶端對JS圖像URL參數

通常情況下,我也只是在HTML隱藏字段,並與任何數據我想從後面的代碼頁加載填充它,然後抓住它的JS。 的問題是,JS函數需要的圖像的URL,而不是一個Byte()這是圖像如何存儲在數據庫中。

我如何將圖像數據轉換成某種JS可以使用嗎?

這裏的JS功能,以供參考:

function onVrViewLoad() { 
    var vrView = new VRView.Player('#vrview', { 
     image: 'images/myImage.jpg', //image URL goes here 
     width: 800, 
     height: 700, 
     is_stereo: false 
    }); 
} 

謝謝!

+0

不確定是什麼問題? – guest271314

+0

@ guest271314 - 問題是圖像數據以字節的形式存儲在數據庫中,並且沒有直接的文件路徑給JS。 JS函數需要一個文件路徑。 – TheIronCheek

+1

在'image:url'中指定'url',指向您的服務器端頁面(ASP.NET Forms)或控制器操作(MVC)並返回文件流作爲響應。 – Igor

回答

0

正如意見建議的@Igor,我創建了一個單獨的頁面,返回在響應文件流:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Dim rs As SqlDataReader = SqlHelper.ExecuteReader(ConfigurationManager.AppSettings("connString"), "spGetAttachment", Request.QueryString("id")) 
    rs.Read() 
    Response.Buffer = True 
    Response.Clear() 
    Response.Expires = 0 
    Response.ContentType = rs("ContentType") 
    Dim File() As Byte = rs.GetValue(8) 
    Response.BinaryWrite(File) 
    Response.End() 
End Sub 

那麼原來的頁面上,我所說的圖像的URL設置爲我的新創建Viewer.aspx:

function onVrViewLoad() { 
    var imgID = document.getElementById("<%= hfImgID.ClientID %>"); 

    var vrView = new VRView.Player('#vrview', { 
     image: "AttachmentViewer.aspx?id=" + imgID.value, 
     width: 780, 
     height: 580, 
     is_stereo: false 
    }); 
}