• 文件下载


    pom.xml的maven:

     <dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-webmvc</artifactId>    <version>4.1.9.RELEASE</version>   </dependency>

      <dependency>    <groupId>org.apache.commons</groupId>    <artifactId>commons-io</artifactId>    <version>1.3.2</version>   </dependency>

      <dependency>    <groupId>commons-fileupload</groupId>    <artifactId>commons-fileupload</artifactId>    <version>1.3.2</version>   </dependency>

    web.xml配置:

     
      <servlet>
       <servlet-name>springDispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>


      <!-- 配置DispatcherServlet的初始化參數:设置文件的路径和文件名称 -->
      <init-param>
     
      <param-name>contextConfigLocation</param-name>
     
      <!-- classPath是字节码文件的根目录,这个目录 与java文件目录相对应, 这个目录只需要在java代码的根目录创建xml文件,编译之后再classes文件夹下会出现对应的xml文件, 这个根目录分两种情况 -->
      <param-value>classPath:springmvc.xml</param-value>
     
      </init-param>
     
      <!--优先级,服务器启动便加载servlet  -->
      <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>springDispatcherServlet</servlet-name>
        <!-- /不包括jsp -->
      <url-pattern>/</url-pattern>
      </servlet-mapping>

    springmvc.xml配置:

    <!-- 设置扫描组件的包: --> <context:component-scan base-package="com.qianfeng"/>

    <!-- 配置映射解析器:如何将控制器返回的结果字符串,转换为一个物理的视图文件-->  <bean id="internalResourceViewResolver"   class="org.springframework.web.servlet.view.InternalResourceViewResolver">     <!-- 前缀 ,指定jsp资源存放的位置 --> <property name="prefix"  value="/WEB-INF/views/"/>

    <!-- 后缀,所有jsp文件的结尾 --> <property name="suffix" value=".jsp"/> </bean>

    <!--声明当前的项目要用到文件上传的功能  --> <!-- id的值必须是 --> <!-- 配置文件上传解析器multipartResolver --> <bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置编码,要与前端页面同意,一般情况下都是utf-8 --> <property name="defaultEncoding" value="UTF-8"></property> <property name="maxUploadSize" value="10240000"></property> <!-- 上传最大限制 --> </bean>

    <!-- 以上标签表示文件上传功能开始启动 -->

    java代码:

    @RequestMapping("download")
     public void load(HttpServletResponse resp,
       HttpServletRequest req){
      //核心思想,把服务器上的文件转成流输出到客户端
      //需要response对象
      //需要向客户端输出流的对象
      
      
      //通过io操作获取服务器的文件
      String path=req.getServletContext().getRealPath("/load/5.bmp");
      File file=new File(path);
      
        //设置contentype,告诉浏览器返回的数据格式(是文件还是图片) aplication/octet-stream是通用类型
      resp.setContentType("aplication/octet-stream");
      System.out.println(file.getName());
      
      //响应也有请求体,请求头,请求行
      //content-Disposition 表示向客户端描述附加信息
      //attachment表示以附件的形式进行下载
      resp.addHeader("content-Disposition","attachment;fileName="+file.getName());
      
      try {
       ServletOutputStream outputStream=resp.getOutputStream();
       InputStream inputStream=new FileInputStream(file);

    //转成byte数组
       byte[] b=IOUtils.toByteArray(inputStream);
       
       //以byte数组的形式进行输出
       outputStream.write(b);
       
       //流操作完须关闭
       inputStream.close();
       outputStream.flush();
       outputStream.close();
      } catch (IOException e) {
       e.printStackTrace();
      }
     
      
     
     

  • 相关阅读:
    linux -- 基于zookeeper搭建yarn的HA高可用集群
    Linux -- 之HDFS实现自动切换HA(全新HDFS)
    Hadoop格式化 From hu-hadoop1/192.168.11.11 to hu-hadoop2:8485 failed on connection exception: java.net.
    Directory /home/hdfs/name is in an inconsistent state: storage directory does not exist or is not a
    react学习01
    单页面应用(spa)引入百度地图(Cannot read property 'dc' of undefined)
    npm 发布包
    Vue学习-01
    echarts3.0使用总结
    webpack学习--创建一个webpack打包流程
  • 原文地址:https://www.cnblogs.com/rzqz/p/7073420.html
Copyright © 2020-2023  润新知