2013-06-27 89 views
0

我有ServletAPI/JSP媒體門戶。今天,我添加了JQuery查看圖像的插件,這些插件是由字節字段動態存儲和加載的。如果我嘗試在本地機器上查看圖像,一切正常。但是當我嘗試從數據庫中查看圖像時 - 我得到了許多奇怪的字符而不是img。在網頁上有來自數據庫的所有圖像,我看到它們正確渲染。所以它不是在標題中的麻煩(設置爲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> 

請指出我解決這個問題的方法。如果需要更多信息 - 沒有問題。 謝謝你的建議。 Nazar

回答

0

Bytea類型可能會在PostgreSQL中造成一些困難,因爲很多接口需要單獨的轉義,而且可用的轉義方法可以隨PostgreSQL版本而改變。這裏沒有足夠的信息來給出答案,但足以讓您開始排除故障。

一般來說,你有幾個可能的bytea類型問題。

  1. 您是否正確處理輸入中的轉義?

  2. 您是否意外地在輸入文件上損壞文件?

  3. 該文件是否正確地在輸出上未轉義?

  4. 該文件是否在輸出上被損壞?

現在問題2和4在您的代碼中,而1和3通常與您正在使用的框架(可能存在誤用)有關。但是,您需要開始運行全面測試並將最終輸出與輸入進行比較,然後逐步查看發生了什麼變化(十六進制編輯器可以幫助識別某些類型的問題)。