【问题标题】:Weird characters instead of image奇怪的字符而不是图像
【发布时间】:2013-06-24 12:24:47
【问题描述】:

我有Servlet API/JSP 媒体门户。今天我添加了JQuery查看图片的插件,由PostgreSQL bytea 字段动态存储和加载。如果我尝试在本地计算机上查看图像,一切正常。但是当我尝试从 DB 中查看图像时 - 我得到了很多奇怪的字符而不是 img。在网页上有来自 DB 的所有图像,我看到它们正确呈现。所以这不是标题中的麻烦(设置为img/jpg)。由于某种原因,我只是无法在插件中查看它们。这就是我加载它们的方式。我正在遍历所有图像的 ID 并从 servlet 返回二进制数据,这将成为图像的 src 属性。

<c:forEach var="imageID" items="<%= currentUser.getImageIDs()%>">
<a class="group2" href="<%= request.getContextPath() + "/imageservlet?id="%>${imageID}"><img src="<%= request.getContextPath() + "/imageservlet?id="%>${imageID}" ></a>
</c:forEach>

请指出这个问题的解决方案。如果需要更多信息 - 没问题。 谢谢指教。 纳扎尔

【问题讨论】:

    标签: html image jsp postgresql binary


    【解决方案1】:

    Bytea 类型在 PostgreSQL 中可能会带来一些困难,因为许多接口需要单独的反转义,并且可用的转义方法可能会随着 PostgreSQL 版本而改变。这里没有足够的信息来给出答案,但足以让您开始进行故障排除。

    一般来说,您可能会遇到一些与 bytea 类型有关的问题。

    1. 您是否正确处理输入转义?

    2. 您是否在输入时意外损坏了文件?

    3. 文件是否在输出时正确转义?

    4. 文件在输出时被破坏了吗?

    现在问题 2 和 4 在您的代码中,而问题 1 和 3 通常与您正在使用的框架有关(并且可能存在误用)。但是,您需要首先运行完整的循环测试并将最终输出与输入进行比较,然后逐步查看发生了什么变化(十六进制编辑器有助于识别某些类型的问题)。

    【讨论】:

      猜你喜欢
      • 2018-11-24
      • 2018-12-17
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      相关资源
      最近更新 更多