做畢業設計的時候,因爲需要顯示圖片,所以需要引用上傳到本地之後的圖片。
而之所以不上傳到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}"