由於展示某些圖片數據需要權限驗證,因此不能直接訪問圖片資源。因此,使用spring mvc輸出圖片中遇到一個問題。
剛開始使用以下方式返回圖片的字節,然而發現response.setContentType("image/png");並沒有生效,返回的Response中type是text,導致圖片無法展示。
@WebCheckLogin
@GetMapping(value="/album/resizePicture")
public byte[] resizePicture(HttpServletRequest request, HttpServletResponse response) {
response.setContentType("image/png");
...
}
解決方案
@WebCheckLogin
@GetMapping(value="/album/resizePicture")
public void resizePicture(HttpServletRequest request, HttpServletResponse response) {
response.setContentType("image/png");
try (OutputStream out = response.getOutputStream()) {
//這裏直接寫入輸出流
}
}