• 用java页面下载图片


    try {
    //根据String形式创建一个URL对象
    String filePath = materialProductWorks.getDownloadImageUrl();
    URL url = new URL(filePath);
    //实列一个URLconnection对象,用来读取和写入此 URL 引用的资源
    HttpURLConnection conn = (HttpURLConnection)url.openConnection();
    //设置请求方式为"GET"
    conn.setRequestMethod("GET");
    //超时响应时间为5秒
    conn.setConnectTimeout(5 * 1000);
    //下载图片重新命名,这行注掉
    //String fileName = filePath.substring(filePath.lastIndexOf(File.separator)+1);
    //获取一个输入流
    InputStream is = conn.getInputStream();
    // 清空buffer,设置页面不缓存
    response.reset();
    //使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据
    response.setContentType("application/octet-stream");
    //设置不同的名称
    String ufile = UUID.randomUUID().toString().replace("-", "");
    //文件下载,指定默认名
    response.addHeader("Content-Disposition", "attachment;filename=" + ufile + ".png");
    //一个byte[]数组,一次读取多个字节
    byte[] bt = new byte[1000];
    //用来接收每次读取的字节个数
    int b = 0;
    OutputStream out = response.getOutputStream();
    //循环判断,如果读取的个数b为空了,则is.read()方法返回-1,具体请参考InputStream的read();
    while ((b = is.read(bt)) != -1) {
    //将对象写入到对应的文件中
    out.write(bt, 0, b);
    }
    //刷新流
    out.flush();
    //关闭流
    out.close();
    is.close();
    conn.disconnect();
    } catch (Exception e) {
    e.printStackTrace();
    }
  • 相关阅读:
    Linux 终端常用快捷键
    问题集
    数据库
    mysql数据库知识点
    IntelliJ IDEAj集成开发环境
    Windows最全DOS的CMD命令
    DB2移植到Oracle数据库完整的图解教程
    169.254是什么IP地址 169.254的解决方法(添加局域网地址时)
    解析xml时报错
    童年乐趣
  • 原文地址:https://www.cnblogs.com/liduanwen/p/4737012.html
Copyright © 2020-2023  润新知