php实现文件下载简单示例(代码实现文件下载)


Posted in PHP onMarch 10, 2014
public function downloads($name){
$name_tmp = explode("_",$name);
$type = $name_tmp[0];
$file_time = explode(".",$name_tmp[3]);
$file_time = $file_time[0];
$file_date = date("Y/md",$file_time);
$file_dir = SITE_PATH."/data/uploads/$type/$file_date/"; 
if (!file_exists($file_dir.$name)){
 header("Content-type: text/html; charset=utf-8");
 echo "File not found!";
 exit; 
} else {
 $file = fopen($file_dir.$name,"r"); 
 Header("Content-type: application/octet-stream");
 Header("Accept-Ranges: bytes");
 Header("Accept-Length: ".filesize($file_dir . $name));
 Header("Content-Disposition: attachment; filename=".$name);
 echo fread($file, filesize($file_dir.$name));
 fclose($file);
}
}

示例2:代码实现文件下载

一般实现下载都是调用url来下载,但是遇到ie能识别打开的文件就不能用这种方式了,比如下载一个图片、html网页等,这时就需要编程来实现,以下php代码可以解决:

<?
if( empty($_GET['FileName'])|| empty($_GET['FileDir'])|| empty($_GET['FileId'])){
    echo'<script> alert("非法连接 !"); location.replace ("index.php") </script>'; exit();
}
$file_name=$_GET['FileName'];
$file_dir=$_GET['FileDir'];
$FileId=$_GET['FileId'];
$file_dir = $file_dir."/";
if   (!file_exists($file_dir.$file_name))   {   //检查文件是否存在  
  echo   "文件找不到";  
  exit;    
  }   else   {  
$file = fopen($file_dir . $file_name,"r"); // 打开文件
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit();
}
?>
PHP 相关文章推荐
综合图片计数器
Oct 09 PHP
PHP文件下载类
Dec 06 PHP
判断是否为指定长度内字符串的php函数
Feb 16 PHP
php学习之 数组声明
Jun 09 PHP
php注销代码(session注销)
May 31 PHP
采用ThinkPHP中F方法实现快速缓存实例
Jun 13 PHP
PHP5.3与5.5废弃与过期函数整理汇总
Jul 10 PHP
php创建无限级树型菜单
Nov 05 PHP
PHP简单实现生成txt文件到指定目录的方法
Apr 25 PHP
[原创]php实现子字符串位置相互对调互换的方法
Jun 02 PHP
利用php获得flv视频长度的实例代码
Oct 26 PHP
TP5框架页面跳转样式操作示例
Apr 05 PHP
php实现文件编码批量转换
Mar 10 #PHP
php导出word文档与excel电子表格的简单示例代码
Mar 08 #PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 #PHP
PHP_Cooikes不同页面无法传递的解决方法
Mar 07 #PHP
php function用法如何递归及return和echo区别
Mar 07 #PHP
详解PHP中strlen和mb_strlen函数的区别
Mar 07 #PHP
解决Codeigniter不能上传rar和zip压缩包问题
Mar 07 #PHP
You might like
PHP的FTP学习(一)
2006/10/09 PHP
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
2014/05/10 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
typecho插件编写教程(五):核心代码
2015/05/28 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
学习PHP的数组总结【经验】
2016/05/05 PHP
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
深入探讨前端框架react
2015/12/09 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
基于Two.js实现星球环绕动画效果的示例
2017/11/06 Javascript
让Vue也可以使用Redux的方法
2018/05/23 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
python中定义结构体的方法
2013/03/04 Python
python实现的重启关机程序实例
2014/08/21 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
python实现websocket的客户端压力测试
2019/06/25 Python
HTML5 canvas基本绘图之绘制曲线
2016/06/27 HTML / CSS
Nike俄罗斯官方网站:Nike RU
2021/03/05 全球购物
公司年会搞笑主持词
2014/03/24 职场文书
地理科学专业自荐信
2014/09/01 职场文书
给老婆的检讨书
2015/01/27 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python