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();

    }

     

     

     

     

     

  • 相关阅读:
    Individual Project
    最后的作业
    Reading Task 2 —— by12061154Joy
    Code Review —— by12061154Joy
    Pair Project —— Elevator Scheduler
    《移山之道》Reading Task——by12061154Joy
    Individual Project
    qa_model
    个人阅读作业2
    Personal Reading Assignment 2 -读推荐文章有感以及项目开发目前总结
  • 原文地址:https://www.cnblogs.com/libaowen609/p/12819650.html
Copyright © 2011-2022 走看看