【问题标题】:VB.NET set embedded object src to byte array? dynamically set src valueVB.NET 将嵌入对象 src 设置为字节数组?动态设置 src 值
【发布时间】:2013-12-05 12:24:56
【问题描述】:

我正在尝试在嵌入标签内动态设置 src 属性,而嵌入标签又在对象标签内:

<object width=700 height=700>
<embed src=__bytearraycontents___ type="image/vnd.djvu" width="700" height="700" />
</object>

当我获得字节数组并将图像文件保存到我的硬盘上的 test.djvu 然后将 src 设置为此时,它工作正常。我的问题是我不想将图像写入硬盘驱动器,我希望立即将 src 设置为字节数组。谁能给点建议?

谢谢, C

【问题讨论】:

    标签: vb.net bytearray embedding djvu


    【解决方案1】:

    将 src 属性设置为返回 .djvu 文件的页面。该页面可以是 .aspx 或 HTTP Handler。在 src 的 url 中的查询字符串中传入您的唯一标识符。在您的文档服务页面上,确保 Response.ContentType 为“image/x.djvu”。

    例子:

    <embed src="YourPageThatServesUpDocuments.aspx?DocumentID=1" type="image/vnd.djvu" width="700" height="700" />
    

    YourPageThatServesUpDocuments.aspx 的页面加载的假设粗略示例:

    Response.ContentType = "image/x.djvu"
    'Where GetByteArrayByDocumentID is the code that gets your byte array.
    Response.BinaryWrite(GetByteArrayByDocumentID(Request.QueryString("DocumentID")))
    

    【讨论】:

    • 感谢您的回复。我按照您的描述做了,但是在使用 Internet Explorer 运行时出现此错误(通过 Visual Studio 调试)[见下图]。它通过 Visual Studio 调试与 Firefox 和 Chrome 一起使用,但不适用于 IE(版本 10) 我知道字节数组中的数据没有任何问题,就好像我将字节数组作为 .djvu 写入本地硬盘一样,我可以打开它(它正在使用 chrome 和 firefox!)i42.tinypic.com/2v2w6rs.jpg 有什么建议吗?再次感谢
    • 您可以尝试使用 Response.OutputStream.Write 而不是 BinaryWrite。
    • 我按照上面的方法进行了尝试,但结果相同。 Response.OutputStream.Write(imagedata, 0, imagedata.Length) 但我得到了同样的小灰色框。每当我在 Visual Studio 中使用 firefox 或 chrome 进行调试并检查浏览器插件时,它似乎正在运行 DjVu Plugin Viewer。但是在使用 IE 进行调试时,插件查看器插件不在浏览器插件列表中。只有从硬盘驱动器在 IE 中打开时,它才会调用必要的附加 .dll 来查看 djvu 文件并正常工作。难道这是问题所在,如果是这样,我该如何强制 IE 加载浏览器插件@pageload?
    • 也许在你输出后尝试 Response.Flush() 和/或 Response.End()。
    • 不幸的是,我在 response.binarywrite 之后有两行但仍然无法正常工作(在 IE 中)。仍然非常适合 chrome/firefox。
    猜你喜欢
    • 2014-01-07
    • 2015-07-19
    • 1970-01-01
    • 2018-10-07
    • 2020-11-29
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 2018-12-09
    相关资源
    最近更新 更多