Current Location: Home> Latest Articles> Detailed Methods and Code Examples for Forcing File Downloads with PHP

Detailed Methods and Code Examples for Forcing File Downloads with PHP

M66 2025-07-26

How to Force File Download Using PHP Code

In development, it is sometimes necessary to force the browser to download a specified file via PHP instead of opening it directly. The key to achieving this is to set the correct HTTP response headers to inform the browser that this is an attachment.

<?php
header('Content-type: text/javascript');
header('Content-Disposition: attachment; filename="file.js"');
readfile('file that is downloaded.js'); // Replace this with the actual file path
?>

Note that the header function must be called before any output is sent; otherwise, extra content may appear in the downloaded file or the download may fail.

Using .htaccess to Force Download for Specific File Types

Besides using PHP code, you can also use the server configuration file .htaccess to force the download behavior for specific file types. This method works on Apache servers and allows you to uniformly manage download behavior for certain file extensions.

AddType application/octet-stream csv
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename=name of csv file');
header('Pragma: no-cache');
readfile('path-to-csv-file');

In the example above, the AddType directive sets the MIME type of .csv files to application/octet-stream, which forces the browser to download the file instead of opening it. Combined with PHP's header and readfile functions, this approach gives flexible control over the file download process.

Summary

By properly setting HTTP headers, PHP can easily implement forced file downloads. Whether downloading a single file or managing downloads uniformly through server configuration, these methods meet various development needs. Mastering these techniques helps improve the user experience in website file management.