一个简单的http请求附件下载
来源:互联网 发布:员工管理系统数据库 编辑:程序博客网 时间:2024/04/29 07:34
附件的下载有很多种实现,使用servlet可以直接在response的输出流中直接写入文件数据,然后浏览器就会直接提示下载该附件。其中比较重要的是设置http请求的响应头,设置响应头的Content-Type以及Content-disposition,Content-Type可以根据附件的类型来设置,具体可以参考:MIME类型收录主要包含Content-Type的可设定值 文章地址:http://blog.csdn.net/dcqboke/article/details/27319185
下面是一个简单的servlet来实现附件下载功能:
package cn.qing.servlet;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.net.URLEncoder;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 {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//需要下载的附件,在这里直接获取系统磁盘内的Excel文件File file = new File("D:/sheetTemplate/constructsheet-export-template.xls");String fileName = URLEncoder.encode(file.getName(), "utf-8");//设置支持.xls(Excel)文件下载的contentTyperesponse.setContentType("application/vnd.ms-excel");//设置Content-disposition为attachment(附件),并设置文件名response.setHeader("Content-disposition", "attachment; filename="+fileName);int fileLength = (int)file.length();response.setContentLength(fileLength);InputStream inputStream = new FileInputStream(file);ServletOutputStream outputStream = response.getOutputStream();if(fileLength > 0){byte[] buf = new byte[4096];int count = 0 ;while((count = inputStream.read(buf))!=-1){//将附件信息写入ServletOutputStream中,//请求成功后就会将这个ServletOutputStream作为响应内容返回outputStream.write(buf, 0, count);}}inputStream.close();}}上面的例子中需要下载的附件直接在系统的磁盘中以文件的形式获取,在项目开发中可能是需要根据数据生成指定文件,然后提供下载功能。
0 0
- 一个简单的http请求附件下载
- 一个简单的http请求
- Java通过Http请求下载文本附件到本地
- 一个简单实用的cURL模拟http请求的函数
- 一个简单的HTTP请求与应答基于socket
- Android 的一个简单的Http下载文件的方法
- 一个简单的多的socket http 下载原型 perl
- 利用HTTP协议下载附件
- 带有附件的上传,下载,一个多个附件的上传,下载及测试类
- HTTP简单的同步请求
- Http请求的一个bug
- 一个http请求的过程
- 一个http请求的方法
- http一个完整的请求?
- 附件的下载问题
- 用Java的HttpClient写一个简单的http请求和返回
- 用Java的HttpClient写一个简单的http请求和返回
- 用Java的HttpClient写一个简单的http请求和返回
- ICMP协议
- 数据挖掘笔记-分类-决策树-ID3和C4.5
- matlab中Scope图片编辑
- C++获取当前时间
- 树状数组模板
- 一个简单的http请求附件下载
- CSS实现DIV水平居中和上下垂直居中
- Android EditText 在光标处插入,删除内容(例如可用于表情文字输入控件)
- 空格 在不同浏览器中显示距离不一致问题解决方法
- JNI WARNING: input is not valid Modified UTF-8
- 【Java语言】嵌套For循环性能优化案例
- svm算法原理
- Scripts:session_wait.sql
- 简单实现poi来实现读写Excel文件