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 相关文章推荐
给php新手谈谈我的学习心得
Feb 25 PHP
php 获取客户端的真实ip
Nov 30 PHP
php 定界符格式引起的错误
May 24 PHP
基于PHP对XML的操作详解
Jun 07 PHP
PHP图片自动裁切应付不同尺寸的显示
Oct 16 PHP
Laravel 4 初级教程之安装及入门
Oct 30 PHP
PHP多线程之内部多线程实例分析
Mar 09 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
Mar 27 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 PHP
Zend Framework基本页面布局分析
Mar 19 PHP
php 类中的常量、静态属性、非静态属性的区别
Apr 09 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
Oct 17 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
菜鸟修复电子管记
2021/03/02 无线电
PHP简单系统查询模块代码打包下载
2008/06/07 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
jQuery+ajax读取并解析XML文件的方法
2016/09/09 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
JS脚本加载后执行相应回调函数的操作方法
2018/02/28 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
详细探究Python中的字典容器
2015/04/14 Python
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
Python实现遍历目录的方法【测试可用】
2017/03/22 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
详解Python 数据库的Connection、Cursor两大对象
2018/06/25 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
html5摇一摇代码优化包括DeviceMotionEvent等等
2014/09/01 HTML / CSS
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
怎么样写好简历中的自我评价
2013/10/25 职场文书
会计助理岗位职责
2014/02/17 职场文书
人事专员工作职责
2014/02/22 职场文书
2014年三万活动总结
2014/04/26 职场文书
篝火晚会策划方案
2014/05/16 职场文书
工商管理本科生求职信
2014/07/13 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书