Home >Backend Development >PHP Problem >How to close browser download using php
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); ?>In this example, we set the Content-Disposition header to instruct the browser to download the file. The filename parameter is used to specify the file name of the downloaded 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); ?>In this example, we read the file content of 4096 bytes each time and then output it block by block. Notice that inside the loop, we use the ob_flush and flush functions to push the contents of the buffer to the browser. Summary: Use PHP to turn off browser downloadsIn this article, we introduced how to use PHP to turn off browser downloads, including displaying files, processing different file types, downloading files, and processing large files. document. This knowledge is very important for web developers. I hope this article can help you.
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!