文件下载

Posted 付吉龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件下载相关的知识,希望对你有一定的参考价值。

使用代码下载

 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 }

 

以上是关于文件下载的主要内容,如果未能解决你的问题,请参考以下文章

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途

代码片段 PHP,预期文件结尾,我错在哪里?

代码适用于与单个 html 文件不同的堆栈片段

VS code自定义用户代码片段snippet

Java itext为pdf 文件添加水印核心功能代码片段

VSCode自定义代码片段——声明函数