zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    人脸旋转 《转》
    深度学习如何入门?<知乎>
    openGL-------------别人的博客
    如何实现视频的快进快退功能(转)
    MFC+OpenGL基础绘制<转>
    野蒜
    人脸识别68个点<转>
    cv::circle《转》
    HTML5 Canvas之猜数字游戏
    LIRe 源代码分析 3:基本接口(ImageSearcher)
  • 原文地址:https://www.cnblogs.com/Lambquan/p/12980088.html
Copyright © 2011-2022 走看看