How to Force File Download in WordPress
Force file download by adding a small code snippet to an .htaccess file.
Problem
Your visitors click links to text files or image files in the Media Library and the file is rendered directly on the browser. You need that the browser shows a download window asking visitors what to do with the file.
Solution
Follow this procedure to solve the problem described above.
Step 1: Open the upload directory using FTP or cPanel. By default, this directory is at wp-content/uploads.
Step 2: Open the .htaccess file and add the code below. If the file does not exist, create it in the root of the upload directory. Adjust the list of file extensions as required.
# Force file download
<FilesMatch "\.(jpg|jpeg|png|gif|mp3|mp4|mpg|mpeg|avi|txt)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
# END
Step 3: Click a link to a file in the Media Library, whose extension is listed in the code. Verify that the browser launches a download window for the file.
Further reading
I recommend the other tutorials in this series to learn more about managing attachments in WordPress.
- Big Image Handling in WordPress
- How to Restrict the Maximum Upload Size in WordPress
- How to Increase the Maximum Upload Size in WordPress
- How to Change the Upload Directory in WordPress
- How to Move the Upload Directory to a Subdomain in WordPress
- How to Force File Download in WordPress
- How to Disable Attachment Pages in WordPress
- How to Customize the URL of Attachments in WordPress
Source code
The source code developed in this tutorial is available here.
Comments