Generally, no PHP script is required to download a file with the extensions exe and zip. If the file location of this type of file is set in the href attribute of the anchor element, then the file automatically downloads when the user clicks on the download link. Some files, such as image files, PDF files, text
files, CSV files, etc., do not download automatically, and instead, open in the browser when the user clicks on the download link. These files can be downloaded forcibly in PHP using the readfile() function that does not download automatically. This tutorial shows you how to forcibly download any file using PHP script. It was previously mentioned that zip and exe files download automatically,
without using PHP script. First, create an HTML file with the following code. Here, the four anchor elements are defined to download the four types of files. These file types include TEXT, ZIP, PDF, and JPG files. Download.html <html> Output Download File Using readfile() FunctionThe readfile() function is used in PHP script to forcibly download any file of the current location, or the file with the file path. The syntax of this function is given below. Syntax This function can take three arguments. The first argument is mandatory, and the other two arguments are optional. The first argument, $filename, stores the filename or filename with the path that will download. The default value of the second parameter, $use_include_path, is false and will be set to true if the filename with the path is used in the first argument. The third argument, $context, is used to indicate the context stream resource. This function returns the number of bytes read from the file mentioned in the first argument. The uses of this function are shown in the following two examples. Example 1: Download File with FilenameIn this example, we will create an HTML file with the following code, where the file name will be passed as a parameter of the URL named path, and the value of this parameter will be passed to the PHP file named download.php. download2.html <html> We will create the PHP file with the following code to download the file forcibly. Here, the isset() function is used to check whether the $_GET[‘path’] is defined. If the variable is defined, the file_exists() function is used to check whether the file exists in the server. Next, the header() function is used to set the necessary header information before using the readfile() function. The basename() function is used to retrieve the filename, and the filesize() function is used to read the size of the file in bytes, which will be shown in the opening dialog box to download the file. The flush() function is used to clear the output buffer. The readfile() function is used with the filename only, here. download.php <?php if(isset($_GET['path'])) //Define header information //Clear system output buffer //Read
the size of the file //Terminate from the script Output Example 2: Download File with File PathIf the file exists at the given file location, the file path will be required to mention in the URL. In this example, we will create an HTML file with the following code, which will pass the filename with the file path: download3.html <html> We will create a PHP file with the following code to download a file from the file path. The PHP code in the previous example will be slightly modified to download the file from the given path. The clearstatecache() function is used to clear the cache that was previously stored. Two arguments are used in the readfile() function. download2.php <?php //Clear the cache //Check the file path exists or not //Define header information //Clear system output buffer //Read the size of the file //Terminate from the script ?> Output Video TutorialConclusionThis article provided a simple way to forcibly download any file using the PHP script, to help readers to add the download feature in their script. About the authorI am a trainer of web programming courses. I like to write article or tutorial on various IT topics. I have a YouTube channel where many types of tutorials based on Ubuntu, Windows, Word, Excel, WordPress, Magento, Laravel etc. are published: Tutorials4u Help. How do I download a file from a URL?Download a file. On your computer, open Chrome.. Go to the webpage where you want to download the file.. Save the file: Most files: Click on the download link. ... . If asked, choose where you want to save the file, then click Save. ... . When the download finishes, you'll see it at the bottom of your Chrome window.. How can I download PHP file code?PHP enables you to download file easily using built-in readfile() function. The readfile() function reads a file and writes it to the output buffer.. <? ... . header('Content-Type: application/octet-stream');. header("Content-Transfer-Encoding: utf-8");. How can I download zip file from URL in PHP?downunzip.php. upload this file into the folder you'd like to extract the content of the downloaded . zip file.. run the script in you browser. i.e. http://localhost/downunzip.php.. after the script was executed sucesfully, login thru ftp and remove this script.. How can download file from server to local machine in PHP?2 Answers. Create a file from it and redirect the user to the file by using header('Location: /path/to/file.txt');. Insert the following header: header('Content-disposition: attachment; filename=path/to/file.txt');. |