下载

11222

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.io.OutputStream"%>
<%@page import="java.io.File"%>
<%@page import="java.io.FileInputStream"%>
<%@page import="java.io.InputStreamReader"%>
<%@page import="java.net.URL"%>
<%@page import="java.net.URLEncoder"%>

<%
    request.setCharacterEncoding("utf-8");
    String filename = request.getParameter("fileName");
    filename = new String(filename.getBytes("iso-8859-1"),"utf-8");
    //得到向客服端输出的输出流
    OutputStream outputStream = response.getOutputStream();
    //输出文件用的字节数组,每次向输出流发送600个字节
    byte[] b = new byte[600];
    //要下载的文件
    File fileload = new File(request.getRealPath(File.separator+"upload"),filename);        
    //客服端使用保存文件的对话框
    response.setHeader("Content-disposition", "attachment;filename="+URLEncoder.encode(filename,"utf-8"));
    //通知客服文件的MIME类型
    response.setContentType("application/x-msdownload");
    //通知客服文件的长度
    long fileLength = fileload.length();
    String length = String.valueOf(fileLength);
    response.setHeader("Content_length", length);
    //读取文件,并发送给客服端下载
    //InputStreamReader inputStream = new InputStreamReader(new FileInputStream(fileload), "utf-8");
    FileInputStream inputStream = new FileInputStream(fileload);
    int n = 0;
    
    while((n=inputStream.read(b))!=-1){
        System.out.println(n);
        outputStream.write(b,0,n);
    }
    outputStream.flush();
    outputStream.close();
    out.clear();  
    out = pageContext.pushBody();
%>
原文地址:https://www.cnblogs.com/cfb513142804/p/4279083.html