Home >Backend Development >PHP Problem >How to download files in php
How to download files in php: 1. Directly add the file link method; 2. Pass parameters to find and jump to the download link method; 3. Use the functions [head()] and [fread()] functions Output the file directly to the browser method.
php method to download files:
1. Add the file link directly
<button> <a href = "http://localhost/down.zip"> 下载文件 </button>
Click the button to download:
Related learning recommendations: php programming (video)
2. Pass parameters to find and jump to the download link
Pass parameters:
<button> <a href = "http://localhost?f='down'"> 下载文件 </button>
Find the file and jump to the download link:
<?php $down = $_GET['f']; //获取文件参数 $filename = $down.'.zip'; //获取文件名称 $dir ="down/"; //相对于网站根目录的下载目录路径 $down_host = $_SERVER['HTTP_HOST'].'/'; //当前域名 //判断如果文件存在,则跳转到下载路径 if(file_exists(__DIR__.'/'.$dir.$filename)){ header('location:http://'.$down_host.$dir.$filename); }else{ header('HTTP/1.1 404 Not Found'); }
Result:
The file exists
The file does not exist
3. The head() and fread() functions output the file directly to the browser
<?php $file_name = "down"; $file_name = "down.zip"; //下载文件名 $file_dir = "./down/"; //下载文件存放目录 //检查文件是否存在 if (! file_exists ( $file_dir . $file_name )) { header('HTTP/1.1 404 NOT FOUND'); } else { //以只读和二进制模式打开文件 $file = fopen ( $file_dir . $file_name, "rb" ); //告诉浏览器这是一个文件流格式的文件 Header ( "Content-type: application/octet-stream" ); //请求范围的度量单位 Header ( "Accept-Ranges: bytes" ); //Content-Length是指定包含于请求或响应中数据的字节长度 Header ( "Accept-Length: " . filesize ( $file_dir . $file_name ) ); //用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。 Header ( "Content-Disposition: attachment; filename=" . $file_name ); //读取文件内容并直接输出到浏览器 echo fread ( $file, filesize ( $file_dir . $file_name ) ); fclose ( $file ); exit (); }
The result: the same as the second one
Summary: the first and second operations Relatively simple, but it is easy to expose the real address of the file, and the security is not high. The third method can better hide the real address of the file
Related recommendations:Programming Video Course
The above is the detailed content of How to download files in php. For more information, please follow other related articles on the PHP Chinese website!