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删除页面记录 同时刷新页面 删除条件用GET方式获得
Jan 10 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
Jun 22 PHP
9个实用的PHP代码片段分享
Jan 22 PHP
在Linux系统下一键重新安装WordPress的脚本示例
Jun 30 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
Dec 14 PHP
PHP常见错误提示含义解释(实用!值得收藏)
Apr 25 PHP
Yii2 rbac权限控制之菜单menu实例教程
Apr 28 PHP
PHP弱类型的安全问题详细总结
Sep 25 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
Feb 15 PHP
PHP ob缓存以及ob函数原理实例解析
Nov 13 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下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
服务器上配置PHP运行环境教程
2015/02/12 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
php集成动态口令认证
2016/07/21 PHP
php自定义时间转换函数示例
2016/12/07 PHP
PHP array_shift()用法实例分析
2019/01/07 PHP
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
实例详解jQuery结合GridView控件的使用方法
2016/01/04 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
Angular17之Angular自定义指令详解
2018/01/21 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
2019/06/11 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
详解python3百度指数抓取实例
2016/12/12 Python
Python 操作MySQL详解及实例
2017/04/30 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
荟萃全球保健品:维他购
2018/05/09 全球购物
Prototype如何为一个Ajax添加一个参数
2015/12/06 面试题
主治医师岗位职责
2013/12/10 职场文书
竞选大队长演讲稿
2014/04/29 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
中学清明节活动总结
2014/07/04 职场文书
2014年圣诞节寄语
2014/12/08 职场文书
教师求职信怎么写
2015/03/20 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书
四十九个javascript小知识实用技巧
2021/11/20 Javascript
python单向链表实例详解
2022/05/25 Python