首页 > 代码库 > 文件的下载(静态下载和动态下载)
文件的下载(静态下载和动态下载)
建立一个Servlet类:FiledownloadServlet;
package com.lanqiao.javaweb.filedownloadservlet;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URLClassLoader;import java.net.URLEncoder;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import sun.net.URLCanonicalizer;public class FiledownloadServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //response.setContentType("application/x-msdownload"): //即设置一个响应的类型: application/x-msdownload //通知客户端浏览器: 这是一个需要下载的文件, 不能再按普通的 html 的方式打开. response.setContentType("application/x-msdownload"); //response.setHeader("Content-Disposition", "attachment;filename=abc.txt"); //设置用户处理的方式: 响应头: Content-Disposition //通知客户端浏览器: 不再有浏览器来处理该文件, 而是交由用户自行处理 //.txt为下载文件的类型,必须与后面downloadFileName的类型相同; String fileName="文件下载.txt"; response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); //读取进来然后下载; OutputStream out=response.getOutputStream(); //所读取文件的地址,及类型 String downloadFileName="C:\\hh.txt"; //读取要下载的文件 InputStream in=new FileInputStream(downloadFileName); byte[] buffer=new byte[1024]; int len=0; while((len=in.read(buffer))!=-1){ out.write(buffer, 0, len); } in.close(); }}
web.xml文件:
<servlet> <description></description> <display-name>FiledownloadServlet</display-name> <servlet-name>FiledownloadServlet</servlet-name> <servlet-class>com.lanqiao.javaweb.filedownloadservlet.FiledownloadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FiledownloadServlet</servlet-name> <url-pattern>/filedownloadServlet</url-pattern> </servlet-mapping>
download.jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> <!-- 静态下载 --> <a href="http://www.mamicode.com/xyz.txt">download xyz.txt</a> <br><br> <a href="http://www.mamicode.com/test.jsp">download test.jsp</a> <br><br> <!-- 动态下载 --> <a href="http://www.mamicode.com/filedownloadServlet">Download To File</a> </body></html>
文件的下载(静态下载和动态下载)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。