zoukankan      html  css  js  c++  java
  • 用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();
    }
  • 相关阅读:
    阅读《构建之法》1-5章
    构建之法第8,9,10章
    实验5-封装与测试2
    第六次作业-my Backlog
    保存内容
    实验四-单元测试
    实验3—修改版
    做汉堡-57号
    实验3-2
    201306114357-实验3-C语言
  • 原文地址:https://www.cnblogs.com/liduanwen/p/4737012.html
Copyright © 2011-2022 走看看