PHP文件下载方式
<?php
// 不能是中文目录,其实如果是 .rar, .zip 类的这些文件,直接连接就可以下载了!
function download($file_dir,$file_name)
//参数说明:
//file_dir:文件所在目录
//file_name:文件名
{
$file_dir = trim($file_dir);//去掉路径中多余的空格
//得出要下载的文件的路径
if($file_dir != '')
{
$file_path = $file_dir;
if(substr($file_dir,strlen($file_dir)-1,strlen($file_dir)) != '/')
$file_path .= '/';
$file_path .= $file_name;
}
else
$file_path = $file_name;
//判断要下载的文件是否存在
if(!file_exists($file_path))
{
echo '对不起,你要下载的文件不存在。';
return false;
}
$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);
$fp = fopen($file_path,"r");
$buffer_size = 1024;
$cur_pos = 0;
while(!feof($fp)&&$file_size-$cur_pos>$buffer_size)
{
$buffer = fread($fp,$buffer_size);
echo $buffer;
$cur_pos += $buffer_size;
}
$buffer = fread($fp,$file_size-$cur_pos);
echo $buffer;
fclose($fp);
return true;
}
download('', 'note.txt');
?>
最新文章
- [python]python try异常处理机制
- GridView 实现LinkButton下载文件/附件
- C#关于winforms窗体大小、边框、移动、动画等属性
- 【翻译】Windows 10 中为不同设备加载不同页面的3种方法
- 浅谈线程池(中):独立线程池的作用及IO线程池
- Unity3d各平台资源路径文件夹
- PouchDB:可随时同步的开源JavaScript数据库
- 学习总结 for循环--冒泡排序
- 【ASP.NET】C# 将HTML中Table导出到Excel(TableToExcel)
- CSS选择器从右向左的匹配规则
- margin:0px auto和text-align:center区别
- [php]在PHP中读取和写入WORD文档的代码
- IDEA破解 Intellij IDEA license server 激活(可用)
- flink部署操作-flink standalone集群安装部署
- 根据excel表格字段生成sql语句
- python练习题_04
- 多线程的实现方式01 Thread
- 列表选择框:wxSingleChoiceDialog
- python3解析网页经过base64编码后的图片
- Linux--多网卡的7种Bond模式和交换机配置
热门文章
- 关于easyui模拟win2012桌面的一个例子系列
- mysql查询语句举例
- SOAP web service用AFNetWorking实现请求
- 解决Visual Studio 2010新建工程时出现『1>;LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt』错误
- MVC - 身份验证
- 【转】coco2d-x 纹理研究
- List IEnumerable
- list add元素覆盖之前元素问题思考
- android开发之wheel控件使用详解
- UPDATE sql 优化