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