zoukankan      html  css  js  c++  java
  • 文件下载

    使用代码下载

     1 package cn.servlet;
     2 
     3 import java.io.FileInputStream;
     4 import java.io.IOException;
     5 import java.io.InputStream;
     6 import java.io.OutputStream;
     7 import java.net.URLEncoder;
     8 
     9 import javax.servlet.ServletException;
    10 import javax.servlet.http.HttpServlet;
    11 import javax.servlet.http.HttpServletRequest;
    12 import javax.servlet.http.HttpServletResponse;
    13 
    14 public class DownServlet extends HttpServlet {
    15     @Override
    16     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    17         System.err.println("判断用户的积分信息.....");
    18         //获取真实的文件
    19         String path = getServletContext().getRealPath("/files/cos.jar");
    20         //获取这个文件的io
    21         InputStream in = 
    22                 new FileInputStream(path);
    23         //设置响应的头信息
    24         //如果希望将下载的文件修改成中文名,则必须要对中文名称进行编码
    25         String name = "下载的文件.jar";
    26         name = URLEncoder.encode(name,"UTF-8");
    27         resp.setHeader("Content-Disposition","attachment;filename="+name);
    28         resp.setContentType("application/force-download");
    29         
    30         byte[] bs = new byte[1024];
    31         OutputStream out = 
    32                 resp.getOutputStream();
    33         int len = 0;
    34         while((len=in.read(bs))!=-1){
    35             out.write(bs,0,len);
    36         }
    37         in.close();
    38         out.close();
    39     }
    40 }
    41 
    42 <br>
    43     <a href="<c:url value='/files/cos.jar'/>">下载</a>
    44     <br>
    45     <a href="<c:url value='/down'/>">Download</a>

    自己使用urlconnection实现下载

     1 package cn.client;
     2 
     3 import java.io.FileOutputStream;
     4 import java.io.InputStream;
     5 import java.io.OutputStream;
     6 import java.net.HttpURLConnection;
     7 import java.net.URL;
     8 public class Client {
     9     public static void main(String[] args) throws Exception {
    10         //1:声明url地址
    11         URL url = new URL("http://localhost:8080/20151116/files/cos.jar");
    12         HttpURLConnection con = 
    13                 (HttpURLConnection) url.openConnection();
    14         con.setRequestMethod("GET");
    15         con.setDoOutput(true);
    16         con.setDoInput(true);
    17         con.setConnectTimeout(3000);
    18         con.connect();
    19         
    20         //获取连接的状态
    21         int code = con.getResponseCode();
    22         if(code==200){
    23             InputStream in = 
    24                     con.getInputStream();
    25             byte[] bs = new byte[1024];
    26             int len = 0;
    27             OutputStream out = new FileOutputStream("d:/a/a.jar");
    28             while((len=in.read(bs))!=-1){
    29                 out.write(bs, 0, len);
    30             }
    31             out.close();
    32             in.close();
    33         }
    34         con.disconnect();
    35     }
    36 }
  • 相关阅读:
    关于dva前后端分离的跨域问题
    十大经典排序算法
    Java并发编程核心概念一览
    StringBuilder线程为什么不安全
    Java序列化的10个问题
    10 个最难回答的 Java 问题
    lombok @EqualsAndHashCode 注解讲解
    内存泄漏和内存溢出的区别和联系
    RabbitMQ
    RabbitMQ原理图
  • 原文地址:https://www.cnblogs.com/fujilong/p/5608439.html
Copyright © 2011-2022 走看看