我有Servlet
API/JSP
媒体门户网站。今天我添加了JQuery
插件用于查看图像,这些图像由PostgreSQL
bytea字段动态存储和加载。如果我尝试在本地计算机上查看图像,一切正常。但是当我尝试从数据库中查看图像时 - 我得到了许多奇怪的字符而不是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>
请指出这个问题的解决方案。如果需要更多信息 - 没有问题。 谢谢你的建议。 纳扎尔
答案 0 :(得分:0)
Bytea类型可能会在PostgreSQL中造成一些困难,因为许多接口需要单独的unescaping,并且可用的转义方法可能会随PostgreSQL版本而改变。这里没有足够的信息来给出答案,但有足够的信息可以帮助您开始排除故障。
通常,您可能会遇到一些类型为bytea的问题。
您是否正确处理输入时的转义?
您是否意外地在输入中修改了文件?
文件是否在输出中正确转义?
文件是否在输出中被破坏?
现在问题2和4都在你的代码中,而1和3通常与你正在使用的框架有关(并且可能在那里滥用)。但是,您需要首先运行完整的圆测试并将最终输出与输入进行比较,然后逐步查看已更改的内容(十六进制编辑器可以帮助识别某些类型的问题)。