PHP实现文件下载的几种代码共享
复制代码代码如下所示:
< PHP
*文件下载
*
**
标题(内容类型:文本/ HTML;字符集= UTF-8);
下载(网络/ magento-1.8.1.0 .zip,'magento下载);
下载功能(文件,down_name美元){
substr(文件后缀=美元美元(美元,个子文件,')); / /获取文件的后缀
down_name = down_name美元美元。美元的后缀; / /新文件名称后下载
给定文件存在
如果(!file_exists(文件)){
死(您要下载的文件不存在,可能会被删除);
}
$ FP = fopen(文件,R);
file_size美元=文件大小(文件);
下载文件需要使用头部
标题(内容类型:应用程序/字节流);
标头(接受范围:字节);
标题(接受长度:。file_size美元);
标题(内容配置:依恋;文件名=down_name美元。);
$缓冲区=1024;
file_count = 0美元;
将数据返回给浏览器。
而(!Feof(FP file_count美元美元美元)<< file_size){
file_con美元= fread(FP美元美元,缓冲);
file_count美元= $缓冲;
echo $ file_con;
}
Fclose($ FP);
}
>
您还可以查看注释的更详细的代码:
复制代码代码如下所示:
< PHP
下载文件,下载图片
/ / $ file_name =天使。MP3;
file_name美元=bjnihao .webp; / /中国计划未完成下载的文件不存在
/ /转换文件(PHP文件功能需要中国旧代码到GB2312)
/ / iconv -字符串转换为请求的字符编码
file_name美元= iconv(UTF-8
设置文件下载路径(相对)
/ / $ file_path = 。 / / 下file_name美元;
使用绝对路径
file_path美元美元'document_root_server { } =。 / / / HTTP下file_name美元;
打开文件,首先识别和操作
如果(!file_exists($ file_path)){
文件不存在;
返回;退出
}
有打开的文件—
$ FP = fopen(file_path美元,R);
获取文件大小
file_size美元=文件大小($ file_path);
下载所需的响应头
标题(内容类型:应用程序/字节流) / /退货单据;
标头(接受范围:字节);返回到字节大小
标题(接受长度:$ file_size / /返回);文件大小
标题(内容配置:依恋;文件名=。file_name美元); / /客户端弹出对话框,对应的文件名
将数据返回给客户机
设置输出的大小
$缓冲区=1024;
为了下载安全性,我们最好将文件字节读为计数器。
file_count = 0美元;
判断文件是否位于文件末尾(文件末尾)
而(!Feof($(FP)file_size美元美元file_count)> 0){
file_data美元= fread(FP美元美元,缓冲);
多少字节读取/统计
file_count美元= $缓冲;
数据的一部分返回到浏览器。
echo $ file_data;
}
关闭文件
Fclose($ FP);
>
封装的功能:
< PHP
*
封装的功能:
美元的---- file_name参数说明:文件名
file_sub_dir元子路径:文件下载
* /
功能file_dowm(file_name美元,美元file_sub_dir){
文件/转码
file_name美元= iconv(UTF-8
使用绝对路径
file_path美元美元'document_root_server { } =。file_sub_dir file_name美元美元;
打开文件,首先识别和操作
如果(!file_exists($ file_path)){
文件不存在;
返回;退出
}
有打开的文件—
$ FP = fopen(file_path美元,R);
获取文件大小
file_size美元=文件大小($ file_path);
*
在这里你可以设置比下载更多的
如果($ file_size > 50){
太大的文件无法下载;
返回;
}
下载所需的响应头
标题(内容类型:应用程序/字节流) / /退货单据;
标头(接受范围:字节);返回到字节大小
标题(接受长度:$ file_size / /返回);文件大小
标题(内容配置:依恋;文件名=。file_name美元); / /客户端弹出对话框,对应的文件名
将数据返回给客户机
设置输出的大小
$缓冲区=1024;
为了下载安全性,我们最好将文件字节读为计数器。
file_count = 0美元;
判断文件是否位于文件末尾(文件末尾)
而(!Feof($(FP)file_size美元美元file_count)> 0){
file_data美元= fread(FP美元美元,缓冲);
多少字节读取/统计
file_count美元= $缓冲;
数据的一部分返回到浏览器。
echo $ file_data;
}
关闭文件
Fclose($ FP);
}
file_dowm( bjnihao .webp
>
另一个代码:
复制代码代码如下所示:
公共函数下载($名称){
name_tmp美元=爆炸(_
类型=美元美元name_tmp { 0 };
file_time美元=爆炸(,
file_time美元= $ file_time { 0 };
file_date美元=日期(Y / MD
file_dir = site_path美元。 / / /上传数据类型/美元美元file_date / ;
如果(!file_exists(file_dir美元。美元的名字)){
标题(内容类型:文本/ HTML;字符集= UTF-8);
没有找到文件!;
出口;
{人}
文件大小= fopen(file_dir美元。美元的名字,R);
标题(内容类型:应用程序/字节流);
标头(接受范围:字节);
标题(接受长度:文件大小(file_dir美元。名称($);
标题(内容配置:附件;文件名;
回声fread($文件,文件的大小(file_dir美元。美元的名字));
Fclose(文件);
}
}