2
我寫了一個簡單的SpringMVC應用程序和Paas主機。我在Mysql中創建了一個表格,一列是Blob。我可以通過Mysql管理員上傳文件。現在,我的服務器可以在瀏覽器中正確提供html文件或JavaScript文件。但是,當我在http://myserver.com/File/ad.jpg中提供JPG文件時,我的瀏覽器顯示一個小圖標,如果我保存它,Windows圖像軟件將顯示圖像已損壞。在Spring MVC控制器中從Blob提供圖像文件的正確方法是什麼?
下面是一些代碼:
@RequestMapping(value="/File/**", //{name:.+}",
method = RequestMethod.GET)
public @ResponseBody void getContent(
// @PathVariable("name") String name,
HttpServletRequest request,
HttpServletResponse response) throws IOException {
String name = request.getPathInfo();
....
IOUtils.copy(blob.getBinaryStream(), out);
我發現getServletContext()方法返回null,所以我沒能得到的contentType,所以我在MySQL保存的contentType作爲圖像/ JPEG格式的廣告.JPG。我將這種性格設置爲內聯。我還應該做些什麼來提供JPG格式?
嘗試返回'byte []'。切勿直接從Spring MVC控制器寫入輸出流。 – chrylis 2014-09-13 19:59:36
並且不要忘記設置正確的內容類型。 – Bart 2014-09-13 20:16:07
@chrylis我將contentType設置爲image/jpeg,並使用write(blob.getBytes(0,length)),但是現在我爲ad.jpg獲得了一個空白頁 – Splash 2014-09-13 21:00:19