
Community Q&A:
To force the browser to download a file instead of displaying in the browser, you will want to do two a couple of things:
1) log into your cpanel and enter the File Manager.
2) Create or upload a new, blank file named .htaccess (note the . in the front, that is necessary)
3) Place a line of code similar to the following for each type of document you want to force a download. In the examples below, I gave three different file types, .mov, .pdf, and .txt
AddType application/octet-stream .mov
AddType application/octet-stream .pdf
AddType application/octet-stream .txt
This should force your visitors browsers to download the file type for those extensions in that folder.
I hope this answers your question. If you have any more questions or information specific to the issue please leave a comment below so we can further assist you.
Best Regards,
Scott M
i made my script php file for file download and it's working perfect in locahost ,however in the server side it is not working i tryed to put this lines in my .htaccess # Binary Compressed files and archives AddType application/zip .zip AddType application/x-gzip .gz AddType application/x-gtar .gtar AddType application/x-rar-compressed .rar so if someone have idea how to fix this ,it will be so helpful for me | ![]() |
Hello Eldewiny, What in particular are you attempting to accomplish with the file types? Are you attempting to handle them differently within your script for each? | ![]() |
Thank you frist for your answer and here is the code what i use <?php function download($file){ $dir = './download/'; $path = $dir.$file; if(!file_exists($path)){ die('Error'); }else{ header('Content-Description : File Transfer'); header('Content-Disposition : attachment; filename='.basename($path)); header('Content-Type: application/octet-stream'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); ob_start(); flush(); readfile($path); exit; } } if (isset($_GET['download'])) { if (!empty($_GET['download'])) { $file = $_GET['download']; download($file); } } ?> <a class="download-template" href="example.php?download=modern.rar">Download</a> | ![]() |
The error was being caused by extra spaces within your header lines. Rewriting it to the following works just fine:
| ![]() |
i update the code but i still get the same result i think it 's nothing todo with the code here is the link go down and under the image click the button and see the result http://psdclass.com/example.php | ![]() |
These errors were being caused by the order in which your PHP includes were defined. As your header PHP include file was defined before the download script PHP include, the download script was unable to set the header information that is defined within it. I have reversed the two lines on your page so that the download script is called first, and as I see you have adjusted your previous code with that I provided previously, it appears to be working now. | ![]() |
OH MY GOD it is working thank you JeffMa so so much and nice to meet you | ![]() |
It has been my pleasure. One thing I would like to add is to avoid using GET requests to defined the file to be downloaded. This could be exploited to read from any file on your site and could cause your site to become hacked. I recommend directly linking to the file for download instead. | ![]() |
thank you for the advice i will take care about the rest of the code | ![]() |
0 thoughts to “Download file on your website”