0

我有Servlet API/JSP媒体门户。今天我添加JQuery了用于查看图像的插件,这些插件由PostgreSQLbytea 字段动态存储和加载。如果我尝试在本地计算机上查看图像,一切正常。但是当我尝试从 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>

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

4

1 回答 1

0

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

通常,您可能会遇到一些与 bytea 类型有关的问题。

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

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

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

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

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

于 2013-10-28T03:55:17.450 回答