Home  >  Article  >  Backend Development  >  PHP file download principle, _PHP tutorial

PHP file download principle, _PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:02:361150browse

PHP file download principle,

1. PHP download schematic diagram

2. File download source code:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <?php $file_name="哈哈.jpg";//需要下载的文件 $file_name=iconv("utf-8","gb2312","$file_name"); $fp=fopen($file_name,"r ");//下载文件必须先要将文件打开,写入内存 if(!file_exists($file_name)){//判断文件是否存在 echo "文件不存在"; exit(); } $file_size=filesize("a.jpg");//判断文件大小 //返回的文件 Header("Content-type: application/octet-stream"); //按照字节格式返回 Header("Accept-Ranges: bytes"); //返回文件大小 Header("Accept-Length: ".$file_size); //弹出客户端对话框,对应的文件名 Header("Content-Disposition: attachment; filename=".$file_name); //防止服务器瞬时压力增大,分段读取 $buffer=1024; while(!feof($fp)){ $file_data=fread($fp,$buffer); echo $file_data; } //关闭文件 fclose($fp); ?>

3. Solution to file encoding problem:

If the file name is Chinese, the php function cannot recognize the Chinese file name. Generally, if the program encoding is utf-8, the php function is relatively old and can only recognize gb2312 encoded Chinese, so use iconv("original encoding" for Chinese ", "Encoding to be converted to", "String to be transcoded") function can be transcoded.

For example, convert a string from utf-8 to gb2312

 $file_name=iconv(“utf-8”,”gb2312”,”$file_name”);

www.bkjia.comtruehttp: //www.bkjia.com/phpjc/969882.html🎜> 🎜 🎜> 🎜>🎜> 🎜> PHP download schematic diagram 2. File download source code: 1234567891011315161920222222222526? P hp $ file_name = " Haha.jpg" ; //File to be downloaded$file...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn