请求: @ApiOperation(value = "图片下载", nickname = "图片下载") @GetMapping("/downImage") public void downImage(@ApiParam(value = "图片地址", required = true) @RequestParam String imageUrl, HttpServletResponse response) { imageExport.imageExport(imageUrl, response); }
工具类
package com.rk.eai.basic.utils; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.Date; public class imageExport { public static void imageExport(String imageUrl, HttpServletResponse response) { String fileName = "ITEM_image" + new Date().getTime() + ".png"; InputStream inputStream = null; OutputStream outputStream = null; BufferedInputStream bis = null; BufferedOutputStream bos = null; try { //获取图片并获取输入流 URL url = new URL(imageUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); inputStream = connection.getInputStream(); //设置响应头信息 response.setContentType("image/png,"); response.setHeader("Content-Disposition", "attachment;" + "filename=" + URLEncoder.encode(fileName, "UTF-8")); //获取输出流 bis = new BufferedInputStream(inputStream); outputStream = response.getOutputStream(); bos = new BufferedOutputStream(outputStream); int byteread = 0; byte[] bytes = new byte[5 * 1204]; while ((byteread = bis.read(bytes)) != -1) { bos.write(bytes, 0, byteread); } bos.flush(); } catch (Exception e) { e.printStackTrace(); } finally { //关闭流 if (inputStream != null) { try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } if (outputStream != null) { try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } if (bos != null) { try { bos.close(); } catch (IOException e) { e.printStackTrace(); } } if (bis != null) { try { bis.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)