zoukankan      html  css  js  c++  java
  • Servlet实现文件的下载

    (1)项目的主文件夹例如以下:(演示出image和servlet的位置所在)



    (2)详细实现的代码例如以下:

    package com.lc.HttpTest;
    
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class xiazaiwenjian extends HttpServlet {
    
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    		response.setContentType("text/html");
    		
    		//演示下载文件
    		response.setHeader("Content-Disposition","attachment;filename=1.jpg");
    		
    		//打开文件     web网站下载文件的原理  先把文件读进servlet的内存  把文件发送给浏览器段
    		//字符流仅仅能发文本     字节流发文件
    		
    		//1获取要下载文件的全路径
    		String path = this.getServletContext().getRealPath("/images/1.jpg");
    		//2创建文件传输流
    		FileInputStream fis = new FileInputStream(path);
    		//做一个缓冲字节数组
    		byte buff[] = new byte[1024];
    		int len = 0; //实际每次读取的字节数
    		OutputStream os = response.getOutputStream();
    		while((len=fis.read(buff)) > 0){
    			os.write(buff,0,len);
    		}
    		
    		//关闭
    		os.close();
    		fis.close();	
    
    	}
    
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    		this.doGet(request, response);
    	}
    
    }
    


  • 相关阅读:
    信号量进程同步,王明学learn
    信号量互斥,王明学learn
    信号通讯编程,王明学learn
    管道通信,王明学learn
    多进程程序设计,王明学learn
    进程控制理论,王明学learn
    分布式系统间的通信框架
    qrcode.js生成二维
    浅谈spring 声明式事物
    索引失效浅谈
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5233598.html
Copyright © 2011-2022 走看看