2017-06-07 1 views
0

Ich habe Bilddaten in einer Datenbank gespeichert. Ich möchte diese Daten in dem Code hinterher abrufen und es an die aspx-Seite übergeben, so dass es als ein Parameter in einigen JS verwendet werden kann.Weitergabe von Bilddaten an die Client-Seite für JS-Bild URL-Parameter

Normalerweise würde ich einfach ein verstecktes Feld in den HTML-Code einfügen und es mit den Daten füllen, die ich beim Laden der Seite aus dem Code laden möchte, und dann in den JS-Code einfügen. Das Problem ist, dass die JS-Funktion eine Image-URL und keine Byte() erfordert, so wie die Bilder in der Datenbank gespeichert sind.

Wie konvertiere ich die Bilddaten in etwas, das JS verwenden kann?

Hier ist die JS-Funktion als Referenz:

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

Dank!

+0

Nicht sicher, welches Problem ist? – guest271314

+0

@ guest271314 - Das Problem ist, dass die Bilddaten als Bytes in der Datenbank gespeichert werden und keinen direkten Dateipfad zum JS haben. Die JS-Funktion benötigt einen Dateipfad. – TheIronCheek

+1

make 'url' in' image: url, 'zeigen Sie auf Ihre serverseitige Seite (ASP.NET Forms) oder Controller-Aktion (MVC) und geben Sie den Dateistream als Antwort zurück. – Igor

Antwort

0

Wie @Igor in den Kommentaren vorgeschlagen, habe ich eine eigene Seite, die die Datei-Stream in der Antwort zurückgibt:

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 

Dann auf der Originalseite, ich das Bild der URL auf meine neu erstellte mit Anruf 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 
    }); 
} 
Verwandte Themen