1、controller
/**
* 下载二维码
* @param qrId
* @return
* @throws IOException
*/
@RequestMapping(value = "/getImg")
public void getImg(@RequestParam("qrId") String qrId, HttpServletRequest request, HttpServletResponse response) throws IOException {
roomQrService.getImg(qrId,request,response);
}
2、service
/**
* 下载二维码
* @param qrId
* @return
* @throws IOException
*/
void getImg( String qrId, HttpServletRequest request, HttpServletResponse response);
3、serviceImpl
/**
* 下载二维码
* @param qrId
* @return
* @throws IOException
*/
@Override
public void getImg(String qrId, HttpServletRequest request, HttpServletResponse response){
//图片URL地址
String imgUrl="";
//图片名称
String filename="";
String path =filename;
InputStream inputStream = null;
OutputStream out = null;
File file = null;
try {
file = new File(path);
URL url =new URL(imgUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
// conn.setConnectTimeout(1000);//超时提示1秒=1000毫秒
FileUtils.copyURLToFile(url, file);
// inputStream = conn.getInputStream();//获取输出流
response.setContentType("png/jpg");
response.setHeader("Content-Disposition", "attachment" + ";filename=\"" + URLEncoder.encode(filename, "UTF-8") + "\"");
byte[] bytes = new byte[(int)file.length()];
inputStream = new FileInputStream(file);
out = response.getOutputStream();
out.write(bytes, 0, inputStream.read(bytes));
}catch (Exception e) {
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (out != null) {
try {
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (file != null && file.exists()) {
file.delete();
}
}
}
4、效果