zoukankan      html  css  js  c++  java
  • http下载文件(通用格式) .jsp j ava

    package com.yqcf.util;

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class DownFile {
     /**
      *
      * 在jsp页面调用fileDown(request,response) url传参:dirPath(文件的全路径),fileName(文件名)
      *
      * @return boolean
      */
     public boolean fileDown(HttpServletRequest request,
       HttpServletResponse response) {
      // ************取得文件的路径和文件名***************//
      String dirPath = request.getParameter("dirPath");
      String fileName = request.getParameter("fileName");
      // ************判断文件是否存在********************//
      File file = new File(dirPath, fileName);
      if (!file.exists()) {
       System.out.println("文件下载失败:文件或路径错误");
       return false;
      }
      long fileLength = file.length();
      String length = String.valueOf(fileLength);
      // 设置返回文件的类型和头信息,application/octet-stream:文件类型的通用格式//
      response.setContentType("application/octet-stream");
      response.setHeader("Content-disposition", "attachment;filename="
        + fileName);
      response.setHeader("Content_Length", length);
      FileInputStream input = null;
      ServletOutputStream output = null;
      try {
       // **************产生输入流和输出流*************//
       input = new FileInputStream(file);
       output = response.getOutputStream();
       byte[] block = new byte[1024];
       int len = 0;
       // **************开始下载文件*****************//
       while ((len = input.read(block)) != -1) {
        output.write(block, 0, len);
       }
       output.flush();
       return true;
      } catch (IOException e) {
       System.out.println("文件下载失败:" + e.getMessage());
       return false;
      } finally {
       // *************关闭文件流****************//
       try {
        if (input != null) {
         input.close();
        }
        if (output != null) {
         output.close();
        }
       } catch (IOException ex) {
        System.out.println(ex.getMessage());
       }
      }
     }

    }

    路漫漫其修远兮 吾将上下求索
  • 相关阅读:
    java流程控制02Scanner进阶使用
    java流程控制01用户交互scanner
    java流程控制05Switch选择结构
    java基础10三元运算符
    CSDN的轮换广告JS
    如何在DataGrid中加入javascript以进行客户端的操作
    Json 的日期格式到.net datetime格式
    利用web.config设置用户不被锁定
    用csc.exe编译程序的例子
    严重关注食物安全
  • 原文地址:https://www.cnblogs.com/hbmlml/p/3967087.html
Copyright © 2011-2022 走看看