• 下载文件


    以下内容来自 SpringMVC指南  203页

    看到这个下载文件讲的不错,记录下!

    为了将像文件这样的资源发送到浏览器,需要在控制器中完成以下工作:

    1.对请求处理方法使用void返回类型,并在方法中添加HttpServletResponse参数。

    2.将响应的内容类型设为文件的内容类型。Content-Type标题在某个实体的body中定义数据的类型,并包含媒体类型和子类型标识符。不清楚内容类型,并且希望浏览器始终显示Save As(另存为)对话框,则将它设为application/octet-seream。这个值是不区分大小写的。

    3.添加一个名为Content-Disposition的HTTP响应标题,并赋值attachment;filename=fileName,这里的fileName是默认文件名,应该出现在File Download(文件下载)对话框中。它通常与文件同名,但是也并非一定如此。

    例如,以下代码将一个文件发送到浏览器:

    FileInputStream fis = new FileInputStream(file);
    BufferedInputStream bis = new BufferedInputStream(fis);
    byte[] bytes = new byte[bis.available()];
    response.setContentType(contentType);
    OutputStream os = response.getOutputStream();
    bis.read(bytes);
    os.write(bytes);
    

      

    为了将文件发送到浏览器,首先读取文件作为FileInputStream,并将内容加载到字节数组,随后,获取HttpServletResponse的OutputStream,并调用其wirte方法传入字节数组。

    将文件发送到HTTP客户端的更好方法是使用Java NIO的Files.copy()方法

    Path file = Paths.get(...);
    Files.copy(file,response.getOutputStream());
    

      

    代码更短,运行速度更快。

  • 相关阅读:
    HDU1272---(并查集)简单应用
    HDU1232 畅通工程---(经典并查集应用)
    HDU 1877 又一版 A+B(进制转换)
    L1-020. 帅到没朋友
    L2-001. 紧急救援---(Dijkstra,记录路径)
    JVM Class字节码之三-使用BCEL改变类属性
    JVM Class详解之一
    Jvm原理剖析与调优之内存结构
    虚拟化的发展历程和实现原理——图文详解
    JVM学习笔记(四)------内存调优
  • 原文地址:https://www.cnblogs.com/yanqin/p/7069247.html
Copyright © 2020-2023  润新知