Java Response实现文件下载

Java Response实现文件下载代码示例:packagecom.xiaomin.filedownload;importjava.io.FileInputStream;importjava.io.FileReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.PrintWriter;importjavax….

代码示例

package com.xiaomin.filedownload;

import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;

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 Demo extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		/*
         * 设置输出的格式
         */
        String fileName = "lyf.jpg".toString(); // 文件的默认保存名
        response.reset();//清除首部的空白行
        response.setContentType("bin");//是设置文件类型的,bin这个文件类型是不存在的,浏览器遇到不存在的文件类型就会出现一个下载提示。
        response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");//
        
        /*
         * 读取磁盘上的文件
         */
        InputStream inStream = new FileInputStream("D:/lyf_result.jpg");// 文件的存放路径
        
        
        // 循环取出流中的数据
        byte[] b = new byte[100];
        int len;
        try {
            while ((len = inStream.read(b)) > 0)
                response.getOutputStream().write(b, 0, len);//向客户端响应
            	inStream.close();//关闭流
        } catch (IOException e) {
            e.printStackTrace();
        }
	}
}

Content-disposition 的说明如下:

  Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。当 Internet Explorer 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名。(请注意,这是设计导致的;无法使用此功能将文档保存到用户的计算机上,而不向用户询问保存位置。)  

        服务端向客户端游览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开,比如txt、jpg等,会直接在浏览器中显示,如果需要提示用户保存,就要利用Content-Disposition进行一下处理,关键在于一定要加上attachment:

         Response.AppendHeader(“Content-Disposition”,”attachment;filename=FileName.txt”);

         备注:这样浏览器会提示保存还是打开,即使选择打开,也会使用相关联的程序比如记事本打开,而不是IE直接打开了。

截图留念

Java Response实现文件下载Java Response实现文件下载

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/36051.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注