用servlet实现文件和图片的下载
2016-07-14 18:17
399 查看
用servlet实现文件和图片的下载
package com.cdsxt.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
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 {
//Content-Disposition attachment; filename="40Ò³ÕûÀíÓ¢ÓïËļ¶µ¥´Ê´óÈ«.doc"
// response.addHeader("content-type", "dfag/fdsaffdsa;charset=utf-8");
//下载 两步 第一步 设置头信息 第二步 以流方式写出去
ServletContext context=this.getServletContext();
// InputStream in=context.getResourceAsStream("/file/英语四级.doc");
String path=context.getRealPath("/file/girl.jpg");
File file=new File(path);
String nameStr=file.getName();
String name=new String(nameStr.getBytes("utf-8"),"iso8859-1");
FileInputStream in=new FileInputStream(file);
response.addHeader("Content-Disposition", "attachment; filename="+name);
OutputStream out=response.getOutputStream();
byte[] b=new byte[8192];
int temp=0;
while((temp=in.read(b))!=-1){
out.write(b, 0, temp);
}
out.flush();
out.close();
in.close();
}
}
package com.cdsxt.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
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 {
//Content-Disposition attachment; filename="40Ò³ÕûÀíÓ¢ÓïËļ¶µ¥´Ê´óÈ«.doc"
// response.addHeader("content-type", "dfag/fdsaffdsa;charset=utf-8");
//下载 两步 第一步 设置头信息 第二步 以流方式写出去
ServletContext context=this.getServletContext();
// InputStream in=context.getResourceAsStream("/file/英语四级.doc");
String path=context.getRealPath("/file/girl.jpg");
File file=new File(path);
String nameStr=file.getName();
String name=new String(nameStr.getBytes("utf-8"),"iso8859-1");
FileInputStream in=new FileInputStream(file);
response.addHeader("Content-Disposition", "attachment; filename="+name);
OutputStream out=response.getOutputStream();
byte[] b=new byte[8192];
int temp=0;
while((temp=in.read(b))!=-1){
out.write(b, 0, temp);
}
out.flush();
out.close();
in.close();
}
}
相关文章推荐
- 事物的隔离级别及产生的影响脏读 不可重复读 幻读
- select2的dropdown错误
- 扭转战局的棋子 安卓4.4 ART模式实测解析
- 图像的放大与缩小(3)——双立方插值算法
- Windows下C语言的Socket编程例子(TCP和UDP)
- python 学习笔记
- C语言学习笔记——格式化输入输出
- CodeForces Gym 100989B LCS (B)
- linux之常用命令
- python基础语法
- svn 一次添加所有子文件
- MongoDB查询两个属性不相等
- 计算一个字符串最多重复的字符及出现次数
- 图像的放大与缩小(2)——双线性插值放大与均值缩小
- 相关技术
- 6.Note the following points describing various utilities in Oracle Database 11g:
- CV | 智能缩放:浅谈Seam Carving算法 (1)
- ButterKnife使用详解
- 指针与内存的分配
- MySql 修改字符集