• header中Content-Disposition的作用与使用方法


    1 Content-disposition的含义

    是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。Content-disposition其实可以控制用户请求所得的内容存为一个文件的时候提供一个默认的文件名,文件直接在浏览器上显示或者在访问时弹出文件下载对话框。

    格式说明:
    content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm )  

    字段说明:

    Content-Disposition属性有两种类型:inline 和 attachment

    inline :将文件内容直接显示在页面

    attachment:弹出对话框让用户下载:disposition-type是以什么方式下载,如attachment为以附件方式下载

    disposition-parm为默认保存时的文件名
    服务端向客户端游览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开,比如txt、jpg等,会直接在浏览器中显示,如果需要提示用户保存,就要利用Content-Disposition进行一下处理,关键在于一定要加上

    Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt");

    2 代码示例

    File file = new File("rfc1806.txt");  
    String filename = file.getName();  
    response.setHeader("Content-Type","text/plain");  
    response.addHeader("Content-Disposition","inline;filename=" + new String(filename.getBytes(),"utf-8"));  
    response.addHeader("Content-Length","" + file.length());  

    3 下载文件名乱码解决方案

    if (isIE) {
    //IE浏览器的乱码问题解决
        fileName = URLEncoder.encode(fileName, "UTF-8");
    } else {
        //万能乱码问题解决
        fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
    }
    response.setHeader("Content-disposition", "attachment;filename="" + fileName + """);
    //剩下的就是将文件流输出到response
    //FileCopyUtils.copy(inputStream, response.getOutputStream);
  • 相关阅读:
    将表单赋予对对象
    sql server 锁
    设置SQL server服务器的dbo架构
    用ILSpy查看Session.SessionID的生成算法
    c#3.0新特性
    解决文件上传插件Uploadify在火狐浏览器下,Session丢失的问题
    VS2012 集成 IL DASM IL微软中间语言查看器
    认识
    操作符重载
    博客搬家了
  • 原文地址:https://www.cnblogs.com/Lambquan/p/12980088.html
Copyright © 2020-2023  润新知