a标签调用,处理了中文乱码问题
@RequestMapping("/downloadTableQrcode")
try {
response.setContentType("application/zip");
String fileName = new String(name.getBytes(),"ISO8859-1"); //正确,不发生乱码
response.setHeader("Content-Disposition", "attachment; filename="+fileName+".jpg");
javax.servlet.ServletOutputStream out = response.getOutputStream();
DownloadPicFromURL.downloadPicture(url,request.getSession().getServletContext().getRealPath("/")+"downloadTableQrcode.jpg");
File file = null;
file = new File (request.getSession().getServletContext().getRealPath("/")+"downloadTableQrcode.jpg");
InputStream inputStream = new FileInputStream(file);
int b = 0;
byte[] buffer = new byte[1000000];
while (b != -1) {
b = inputStream.read(buffer);
if(b!=-1) out.write(buffer, 0, b);
}
inputStream.close();
out.close();
out.flush();
}catch(Exception e){e.printStackTrace();
}finally {
}
}
-------------------------工具类----------------------
//链接url下载图片
public static void downloadPicture(String urlList,String path) {
URL url = null;
try {
url = new URL(urlList);
DataInputStream dataInputStream = new DataInputStream(url.openStream());
FileOutputStream fileOutputStream = new FileOutputStream(new File(path));
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = dataInputStream.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
fileOutputStream.write(output.toByteArray());
dataInputStream.close();
fileOutputStream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}