关于下载文件功能的总结
来源:互联网 发布:伴奏升调软件 编辑:程序博客网 时间:2024/06/10 19:47
文件的下载主要用到Servlet类和IO流技术。在这里,我创建一个继承HTTPServlet的DownloadServlet类来作为下载文件的业务逻辑处理类,通过接受来自客户端的下载请求,服务器做出响应,进行对应的下载操作,这里用字节流来存储数据,主要涉及到InputStream,OutPutStream。详细请参考下面的主要源代码:
package net.lin.download;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DownloadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获得要下载的文件的名称
String filename = request.getParameter("filename");
//2.要下载的这个文件的类型--客户端通过文件的MIME类型去区分类型
response.setContentType(this.getServletContext().getMimeType(filename));
//3.告知客户端该文件是以附件(下载)的形式打开
response.setHeader("Content-dispostion", "attachment;filename="+filename);
//4.获取文件的绝对路径
String path=this.getServletContext().getRealPath("download/"+filename);
//5.获得该文件的输入流
InputStream in=new FileInputStream(path);
//6.获得该文件的输出流
ServletOutputStream out=response.getOutputStream();
//7.定义一个整型变量len
int len=0;
//8.定义一个byte数组来接收文件数据
byte [] b=new byte[1024];
while((len=in.read(b))!=-1){
out.write(b, 0, len);
}
in.close();
out.close();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
- 关于下载文件功能的总结
- 关于文件下载的几个问题总结
- 关于文件下载的几个问题总结
- PHP-文件下载功能总结
- 关于html的下载功能
- FTP 文件的下载功能
- 关于Uboot的USB下载功能
- 关于a标签的下载功能
- 关于下载文件的权限
- 关于文件下载的问题
- PHP关于文件下载方面知识的总结(包括图片,文件等)
- 关于Qt使用QNetworkAccessManager下载文件(实现断点续传功能)
- 关于Qt使用QNetworkAccessManager下载文件(实现断点续传功能)
- struts2文件的上传和下载功能
- JSP实现简单的文件下载功能
- 文件的上传和下载功能
- 用C++实现下载文件的功能
- 使用angularjs实现下载文件的功能
- springmvc常用注解标签详解
- SSH实现数据分页显示功能
- 二位数组元素的表示方法
- RecyclerView 瀑布流的配置以及它的 StaggeredGridLayoutManager 布局管理器的使用
- 用python打印三角形和阶梯
- 关于下载文件功能的总结
- 远程连接mysql数据库
- 搭建nginx服务器
- 浅谈java中栈和堆
- Javascript的保留字
- R描述性统计分析
- springboot学习笔记003(jpa)
- 欢迎使用Markdown编辑器写博客
- 三亚之旅