import java.net.URL;
import java.net.URLConnection;
@RestController
@Slf4j
public class MenuIconController {
/**
* 图片导出
*/
@GetMapping("/doIconExport")
//@LoginRequired
public Response<Void> doIconExport(HttpServletResponse response) {
//response.reset();
//response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("image/*"); //设置发送到客户端的响应内容类型
read(response,"http://xxx.xxx.com/a1.png","测试.png");
}
public void read( HttpServletResponse response,String url,String iconName) throws IOException {
OutputStream out = null;
try {
URL httpurl = new URL(url);
// 打开连接
URLConnection con = httpurl.openConnection();
// 输入流
InputStream is = con.getInputStream();
// 1K的数据缓冲
byte[] bs = new byte[1024];
// 读取到的数据长度
int len;
//new String(iconName.getBytes("utf-8"), "ISO-8859-1")是为了让文件名中文也能实别,不然会乱码或者空白
response.setHeader("Content-Disposition", "attachment; filename=" + new String(iconName.getBytes("utf-8"), "ISO-8859-1"));
out = response.getOutputStream();
// 开始读取
while ((len = is.read(bs)) != -1) {
out.write(bs, 0, len);
}
//out.close();
//is.close();
} catch (Exception e) {
throw e;
}
}
远程图片URL下载
最新推荐文章于 2023-11-18 20:44:41 发布