In web development, sometimes it is necessary to display files in the browser instead of letting the browser download the files locally. This process can be accomplished through PHP code, and this article will detail how to use PHP to turn off browser downloads.
The HTTP header file is part of the HTTP request and response, and it contains the information required for the HTTP response. We can use the header function in PHP to set the HTTP header file to open the file in the browser.
The following is a simple example showing how to use the header function to display a PDF file in a browser:
<?php $file = 'sample.pdf'; header('Content-type: application/pdf'); header('Content-Disposition: inline; filename="' . $file . '"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($file)); header('Accept-Ranges: bytes'); @readfile($file); ?>
This code first opens a PDF file, and then uses the header function to set the HTTP header document. Among them, Content-type tells the browser that the response content is in PDF format. Content-Disposition: inline allows the browser to display the file inline in the page. Content-Transfer-Encoding: binary specifies that the file is transferred in binary mode. Content -Length specifies the data size of the response, and Accept-Ranges: bytes specifies that the server supports requests in byte ranges.
Finally, use the readfile function to read the file content and display it in the browser in HTML format.
In addition to PDF, we can also use the header function to display other types of files, such as pictures, audio, videos, etc. Just specify the file type in Content-type.
The following are some common file types and their Content-type values:
File type | Content-type |
---|---|
Picture | image/jpeg, image/png, image/gif, image/bmp |
application/pdf | |
text/plain | |
audio/mpeg, audio/ogg, audio/wav | |
video/mp4, video/ogg, video/webm |
<?php $file = 'sample.jpg'; header('Content-type: image/jpeg'); header('Content-Disposition: inline; filename="' . $file . '"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($file)); header('Accept-Ranges: bytes'); @readfile($file); ?>
<?php $file = 'sample.zip'; $filename = 'download.zip'; header('Content-type: application/zip'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($file)); header('Accept-Ranges: bytes'); @readfile($file); ?>
<?php $file = 'bigfile.zip'; $filename = 'download.zip'; $chunksize = 4096; header('Content-type: application/zip'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Content-Transfer-Encoding: binary'); header('Accept-Ranges: bytes'); header('Content-Length: ' . filesize($file)); $handle = fopen($file, 'rb'); while (!feof($handle)) { $buffer = fread($handle, $chunksize); echo $buffer; ob_flush(); flush(); } fclose($handle); ?>
The above is the detailed content of How to close browser download using php. For more information, please follow other related articles on the PHP Chinese website!