做毕业设计的时候,因为需要显示图片,所以需要引用上传到本地之后的图片。
而之所以不上传到web根目录下,是因为你得重新部署才会显示你刚刚上传的图片。
但是src无法直接引用本地的图片,无法直接使用绝对路径,因为浏览器的安全性问题,只能用相对路径。
查过网上很多方法,例如修改server.xml文件,配置,但是都不起效果。
最后才找到一个通过流的形式获取图片的方法。
controller方法
/**
* 获取图片-显示图片
* @param filename
*/
@RequestMapping("/showImage")
public void showImageByType(String filename,HttpServletRequest request,HttpServletResponse response) throws Exception{
InputStream inputStream = null;
OutputStream writer = null;
try {
inputStream = new FileInputStream(new File("图片文件夹绝对路径"+filename));
writer = response.getOutputStream();
byte[] buf = new byte[1024];
int len = 0;
while ((len = inputStream.read(buf)) != -1) {
writer.write(buf, 0, len); //写
}
inputStream.close();
} catch (Exception e) {
logger.error(e.getMessage(),e);
} finally{
try {
if(inputStream != null){
inputStream.close();
}
if(writer != null){
writer.close();
}
} catch (IOException e) {
logger.error(e.getMessage(),e);
}
}
}
src="项目根目录/file/showImage?filename=${student.photo}"