Home  >  Article  >  Backend Development  >  Detailed usage of Content-disposition in php header_PHP tutorial

Detailed usage of Content-disposition in php header_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:55:571792browse

This article introduces in detail the usage of Content-disposition in php header. Friends who need to know the usage of header can refer to it.

Content-disposition is an extension of the MIME protocol, which instructs the MIME user agent how to display attached files. Content-disposition can actually control the user to provide a default file name when the content requested is saved as a file. The file is displayed directly on the browser or a file download dialog box pops up during access.


Format description:

content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm )  

Field description:

Content-Disposition is the attribute name

How is the distribution-type downloaded? For example, attachment is downloaded as an attachment

disposition-parm is the default file name when saving

When the server sends a file to the client browser, if it is a file type supported by the browser, it will generally be opened by the browser by default, such as txt, jpg, etc., and will be displayed directly in the browser. If the user needs to be prompted to save , we need to use Content-Disposition for processing. The key is to add attachment:

The code is as follows
 代码如下 复制代码

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

Copy code

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

 代码如下 复制代码

content-disposition = “Content-Disposition” “:”

disposition-type *( “;” disposition-parm )

disposition-type = “attachment” | disp-extension-token

disposition-parm = filename-parm | disp-extension-parm

filename-parm = “filename” “=” quoted-string

disp-extension-token = token

disp-extension-parm = token “=” ( token | quoted-string )

Note: In this way, the browser will prompt whether to save or open. Even if you choose to open, it will be opened using a related program such as Notepad instead of IE directly.

Content-Disposition provides a default file name when the user wants to save the requested content as a file. The specific definition is as follows:

filename-parm = “filename” “=" quoted-string
The code is as follows

Copy code

content-disposition = “Content-Disposition” “:” disposition-type *( “;” disposition-parm )

disposition-type = “attachment” | disp-extension-token
 代码如下 复制代码

response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "No-cache");
response.setDateHeader("Expires", 0);

disposition-parm = filename-parm | disp-extension-parm

disp-extension-token = token disp-extension-parm = token “=" ( token | quoted-string ) Then we can see the specific examples from the above: Content-Disposition: attachment; filename="filename.xls" Of course the filename parameter can contain path information, but User-Agnet will ignore this information and only use the last part of the path information as the file name. When you use this header information when the response type is application/octet-stream, it means that you do not want to display the content directly, but pop up a "File Download" dialog box, and the next step is up to you. Open" or "Save". Note: 1. When Content-Disposition is used in the code to ensure that the browser pops up the download dialog box. response.addHeader("Content-Disposition", "attachment"); Be sure to make sure that you have not done anything to disable browser caching. As follows:
The code is as follows Copy code
response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "No-cache"); response.setDateHeader("Expires", 0); Otherwise, you will find that the download function works fine in Opera and Firefox, but not in IE

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/632208.htmlTechArticleThis article introduces in detail the usage of Content-disposition in php header. Friends who need to know the usage of header can For reference. Content-disposition is an extension of the MIME protocol,...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn