请求:
@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();
}
}
}
}
}



