package chensi.com;

import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.file.FileAlreadyExistsException; import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* Servlet HttpServletResponse 下载文件 ,浏览器提示我们将图片下载下来。
*/
@WebServlet("/ResponseDemo7")
public class ResponseDemo7 extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//通过路径将图片以流的形式得到
//通过相对路径得到绝对路径
String path = this.getServletContext().getRealPath("/WEB-INF/classes/爪哇.jpg");
//有了路径可以得到输入流(图片,要用字节输出流)
FileInputStream fis = new FileInputStream(path); //使用绝对路径将图片用输入流变成一个流 fis(图片)
//用response创建一个输出流
ServletOutputStream outputStream = response.getOutputStream(); /*我们要将图片下载下来 */
//得到要下载的文件名
String fileName = path.substring(path.lastIndexOf("\\")+1);
System.out.println(fileName);
//设置文件的编码
fileName = URLEncoder.encode(fileName,"UTF-8");
//告知客户端要下载文件
response.setHeader("content-disposition", "attachment;filename="+fileName);
response.setHeader("content-type", "image/jpeg"); //执行fileOutputStream的输出操作
int len = 1;
byte[] b = new byte[1024];
while((len=fis.read(b))!=-1){
outputStream.write(b, 0, len);
}
outputStream.close();
fis.close();
} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }

最新文章

  1. Go语言 获取get、post参数
  2. EntityFramework之Log(五)
  3. 归一化变换 Normalizing transformations
  4. Theano2.1.12-基础知识之使用GPU
  5. tomcat7.0 处理问题
  6. Google Chrome 扩展程序开发
  7. 快速生成PDF书签
  8. vs2013调试的时候卡顿
  9. HOOK API(三)—— HOOK 所有程序的 MessageBox
  10. 表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
  11. 改变cinder默认vg的方法
  12. django的HTTPREQUEST对象
  13. 大话PROFINET
  14. 小议webpack下的AOP式无侵入注入
  15. javascript执行机制
  16. u8g2库的相关资料
  17. 常见jquery面试题
  18. Nginx 自定义添加Response Headers 修改server
  19. Lua“控制”C
  20. java日志系统中的 NDC

热门文章

  1. CMD规范
  2. html5-websocket初探
  3. Android 扫一扫----ZXing 的使用
  4. Notepad++快捷键&正则表达式替换字符串&插件
  5. a+=b 是什么意思?
  6. sql创建表格 转载
  7. JAVA为什么要配置环境变量,怎样配置
  8. 24. Longest Consecutive Sequence
  9. 约瑟夫(环)问题(Josephus problem)
  10. Django base view