how to download and upload file in php

By and large, no PHP script is required to download a file with the extensions exe and naught. If the file location of this type of file is prepare in the href attribute of the ballast element, then the file automatically downloads when the user clicks on the download link. Some files, such as paradigm 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.

Check Download Links

It was previously mentioned that cypher and exe files download automatically, without using PHP script. First, create an HTML file with the post-obit code. Here, the four anchor elements are defined to download the iv types of files. These file types include TEXT, ZIP, PDF, and JPG files.

Download.html

<html>
<head>
<title>Download Files</ title>
</ head>
<body>
<p><a href = "abc.txt">Download TEXT file</ a></ p>
<p><a href = "horizon.nix">Download ZIP file</ a></ p>
<p><a href = "lecture.pdf">Download PDF file</ a></ p>
<p><a href = "rose.jpg">Download JPG file</ a></ p>
</ body>
</ html>

Output
The following dialog box will announced to download the file afterwards clicking the zip file link. The user can and so download the file or open up the file in the annal manager.


If you click on the epitome file, the image volition be opened automatically in the browser, every bit shown in the following output. You lot must save the file to make a copy of the image file in the local drive. In the same mode, when you click on PDF and TEXT file links, the content of the file volition be opened in the browser without downloading the file. The solution to this problem is to download the file forcibly using the congenital-in PHP readfile() function.

Download File Using readfile() Function

The readfile() function is used in PHP script to forcibly download whatsoever file of the current location, or the file with the file path. The syntax of this function is given below.

Syntax
int readfile ( string $filename [, bool $use_include_path = false [, resources $context ]] )

This part can take three arguments. The first argument is mandatory, and the other ii arguments are optional. The beginning argument, $filename, stores the filename or filename with the path that will download. The default value of the 2d 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 statement, $context, is used to signal the context stream resource. This office returns the number of bytes read from the file mentioned in the first argument. The uses of this part are shown in the following two examples.

Instance 1: Download File with Filename

In this example, we will create an HTML file with the following code, where the file name will be passed equally 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>
<head>
<title>Download Files</ title>
</ head>
<body>
<p><a href = "download.php?path=abc.txt">Download TEXT file</ a></ p>
<p><a href = "download.php?path=horizon.zip">Download ZIP file</ a></ p>
<p><a href = "download.php?path=lecture.pdf">Download PDF file</ a></ p>
<p><a href = "download.php?path=rose.jpg">Download JPG file</ a></ p>
</ torso>
</ html>

Nosotros volition create the PHP file with the post-obit lawmaking to download the file forcibly. Hither, the isset() function is used to check whether the $_GET['path'] is defined. If the variable is divers, the file_exists() function is used to bank check whether the file exists in the server. Next, the header() role is used to set the necessary header information before using the readfile() role. The basename() part 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() part is used to clear the output buffer. The readfile() role is used with the filename only, hither.

download.php

<?php

if ( isset ( $_GET [ 'path' ] ) )
{
//Read the filename
$filename = $_GET [ 'path' ] ;
//Bank check the file exists or not
if ( file_exists ( $filename ) ) {

//Define header information
header ( 'Content-Description: File Transfer' ) ;
header ( 'Content-Type: application/octet-stream' ) ;
header ( "Cache-Control: no-cache, must-revalidate" ) ;
header ( "Expires: 0" ) ;
header ( 'Content-Disposition: zipper; filename="' . basename ( $filename ) . '"' ) ;
header ( 'Content-Length: ' . filesize ( $filename ) ) ;
header ( 'Pragma: public' ) ;

//Clear system output buffer
flush ( ) ;

//Read the size of the file
readfile ( $filename ) ;

//Terminate from the script
die ( ) ;
}
else {
echo "File does not exist." ;
}
}
else
repeat "Filename is not defined."
?>

Output
The following output will appear after clicking the download link of the image file. The file size of the rose.jpg image is 27.2 KB, as shown in the dialog box. You can download the file by selecting the Salvage File radio button and pressing the OK button.

Example 2: Download File with File Path

If the file exists at the given file location, the file path will be required to mention in the URL. In this instance, we will create an HTML file with the following lawmaking, which volition pass the filename with the file path:

download3.html

<html>
<head>
<title>Download Files</ championship>
</ head>
<torso>
<p><a href = "download.php?path=downloads/lecture.pdf">Download PDF file</ a></ p>
<p><a href = "download2.php?path=downloads/rose.jpg">Download JPG file</ a></ p>
</ body>
</ html>

We will create a PHP file with the post-obit code to download a file from the file path. The PHP code in the previous case will be slightly modified to download the file from the given path. The clearstatecache() office is used to clear the cache that was previously stored. 2 arguments are used in the readfile() function.

download2.php

<?php
if ( isset ( $_GET [ 'path' ] ) )
{
//Read the url
$url = $_GET [ 'path' ] ;

//Clear the cache
clearstatcache ( ) ;

//Check the file path exists or not
if ( file_exists ( $url ) ) {

//Define header information
header ( 'Content-Description: File Transfer' ) ;
header ( 'Content-Type: awarding/octet-stream' ) ;
header ( 'Content-Disposition: zipper; filename="' . basename ( $url ) . '"' ) ;
header ( 'Content-Length: ' . filesize ( $url ) ) ;
header ( 'Pragma: public' ) ;

//Clear organization output buffer
flush ( ) ;

//Read the size of the file
readfile ( $url , true ) ;

//Stop from the script
die ( ) ;
}
else {
echo "File path does not exist." ;
}
}
echo "File path is not defined."

?>

Output
After the download link of the PDF file is clicked, the following output volition announced.

Video Tutorial

Decision

This article provided a simple fashion to forcibly download any file using the PHP script, to assistance readers to add the download feature in their script.

Nigh the writer

I am a trainer of web programming courses. I like to write article or tutorial on various Information technology topics. I have a YouTube aqueduct where many types of tutorials based on Ubuntu, Windows, Give-and-take, Excel, WordPress, Magento, Laravel etc. are published: Tutorials4u Assist.

stilessniters.blogspot.com

Source: https://linuxhint.com/download_file_php/

0 Response to "how to download and upload file in php"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel