功能代码:
@RequestMapping("fileId/{fileId}")
public void getFile(@PathVariable long fileId,HttpServletResponse response) throws IOException {
Picture picture = pictureService.findById(fileId);
String filePath =picture.getFilePath();
File file = new File(filePath);
FileInputStream inputStream = new FileInputStream(file);
byte[] data = new byte[(int)file.length()];
inputStream.read(data);
inputStream.close();
String[] f = filePath.split("\\.");
String contentType = f[f.length-1].toLowerCase();
response.setContentType("image/"+contentType);
OutputStream stream = response.getOutputStream();
stream.write(data);
stream.flush();
stream.close();
}
<c:forEach items = "${pictureList }" var = "picture">
<p><img src="/picture/index/fileId/${picture.id }" BORDER="0" ALT="无图片"/><p>
<p>${picture.title }</p>
</c:forEach>
客户端需要用到服务器中的某个文件,可以直接用某个类中找到,处理后交给前端。
比如说这次的image。
当firBug时细细的看一下图片、js、css等等,可以发现这些都是通过controller进行处理后得到的。
比如说<script language="javascript" src="<c:url value = "/resources/js/picture/add.js"></c:url>"> </script>
当<a href = "<c:url value = "/resources/js/picture/add.js"></c:url>">111</a>
而controller中有对应了,这个时候访问的则是controller。而如果controller中没有,那么访问该资源。
而由于是script src,所以会限定死只能为js文件。