PHP 文件下载
PHP文件下载其实不复杂,依然遵循http协议原理,一个请求对应一个响应, 然后其实一个文本就是一串流文件组成的, 不然你随便点开一个图片,里面用二进制查看其实就是很多了的二进制代码组成的东西,所以说白了 下载:就是讲那串加密后的二进制文件保存的过
PHP文件下载其实不复杂,依然遵循http协议原理,一个请求对应一个响应,
然后其实一个文本就是一串流文件组成的,
不然你随便点开一个图片,里面用二进制查看其实就是很多了的二进制代码组成的东西,所以说白了
下载:就是讲那串加密后的二进制文件保存的过程,至于解析就是自己电脑的应用程序的事情了
<?php header("Content-type:text/html;charset=utf-8"); // $file_name="cookie.jpg"; $file_name="test.txt"; //用以解决中文不能?示出来的?? $file_name=iconv("utf-8","gb2312",$file_name); //$file_sub_path="http://files.jb51.net/file_images/article/201206/"; $file_sub_path=""; $file_path=$file_sub_path.$file_name; //首先要判断?定的文件存在与否 if(!file_exists($file_path)){ echo "没有?文件文件"; return ; } $fp=fopen($file_path,"r"); $file_size=filesize($file_path); //下?文件需要用到的? Header("Content-type: application/octet-stream"); Header("Accept-Ranges: bytes"); Header("Accept-Length:".$file_size); Header("Content-Disposition: attachment; filename=".$file_name); $buffer=1024; $file_count=0; //向??器返回数据 while(!feof($fp) && $file_count<$file_size){ $file_con=fread($fp,$buffer); $file_count+=$buffer; echo $file_con; } fclose($fp); ?>
几点注意事项:
header("Content-type:text/html;charset=utf-8")的作用:在服务器响应浏览器的请求时,告诉浏览器以编码格式为UTF-8的编码显示该内容
关于file_exists()函数不支持中文路径的问题:因为php函数比较早,不支持中文,所以如果被下载的文件名是中文的话,需要对其进行字符编码转换,否则file_exists()函数不能识别,可以使用iconv()函数进行编码转换
$file_sub_path() 我使用的是绝对路径,执行效率要比相对路径高
Header("Content-type: application/octet-stream")的作用:通过这句代码客户端浏览器就能知道服务端返回的文件形式
Header("Accept-Ranges: bytes")的作用:告诉客户端浏览器返回的文件大小是按照字节进行计算的
Header("Accept-Length:".$file_size)的作用:告诉浏览器返回的文件大小
Header("Content-Disposition: attachment; filename=".$file_name)的作用:告诉浏览器返回的文件的名称
以上四个Header()是必需的
fclose($fp)可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP
