zoukankan      html  css  js  c++  java
  • Java中通过流进行下载处理

    原理:采用ServletOutputStream对象直接从一个字节输入流中读取出来,然后再原封不动的输出到客服端。

    具体如下:

    一.给下载文件名设置utf-8格式

    try{

    fileName=URLEncoder.encode(fileName,"utf-8");

    } catch(UnsupportedEncodingException e1){

    e1.printStackTrace();

    }

    二.设置消息头

    //response.setContentType():这 个方法设置发送到客户端的响应的内容类型,此时响应还没有提交

    //如果response的contenttype是text/html,那么就直接通过浏览器就可以解析内容了。
    //如果response的contenttype是application/x-excel,那么浏览器就不能自己解析了,就需要通过excel程序来打开,或者另存为文件

    //response.setContentType("application/octet-stream");//告诉浏览器输出内容为流  

    //Content-Disposition中指定的类型是文件的扩展名,并且弹出的下载对话框中的文件类型图片是按照文件的扩展名显示的,点保存后,文件以filename的值命名,保存类型以Content中设置的为准。注意:在设置Content-Disposition头字段之前,一定要设置Content-Type头字段。 

    //此报文头content-disposition, 对报文体进行描述, 规定了接收端的显示处理行为。

    //此报文头的值有两种, attachment 和 inline, 分别表示保存 还是 直接显示。

     response.setContentType("application/octet-stream");

     response.setHeader("content-disposition","attachment;fileName" +fileName)

    三.把字节数组放入流中,返回给前端

    try(ServletOutputStream outStream=response.getOutputStream()){

    byte[] bs= new byte[1024];

    outStream.write(bs,0,bs.length);

    outStream.fluse();

    }catch(Exception e){

    e.printStackTrace();

    }

     

     

     

     

     

  • 相关阅读:
    django缓存机制
    RBAC基于角色访问控制
    Book系列十大接口
    xadmin的使用
    JWT认证
    自动生成接口文档
    drf的过滤排序分页异常处理
    认证权限解析频率
    python学习之内置模块补充
    python学习之内置模块补充作业
  • 原文地址:https://www.cnblogs.com/libaowen609/p/12819650.html
Copyright © 2011-2022 走看看