远程图片URL下载

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;
        }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值