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中的注释、变量、数组、常量、函数应用介绍
Nov 16 PHP
PHP创建桌面快捷方式的实例代码
Feb 17 PHP
PHP中提问频率最高的11个面试题和答案
Sep 02 PHP
PHP模块memcached使用指南
Dec 08 PHP
PHP实现获取FLV文件的时间
Feb 10 PHP
ThinkPHP模型详解
Jul 27 PHP
PHP5.2中PDO的简单使用方法
Mar 25 PHP
php将一维数组转换为每3个连续值组成的二维数组
May 06 PHP
PHP性能优化大全(php.ini)
May 20 PHP
php中__toString()方法用法示例
Dec 07 PHP
php桥接模式应用案例分析
Oct 23 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 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实现分页工具类分享
2014/01/09 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
基于jquery的一个图片hover的插件
2010/04/24 Javascript
Script的加载方法小结
2011/01/12 Javascript
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
JScript中的条件注释详解
2015/04/24 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
jQuery EasyUI中DataGird动态生成列的方法
2016/04/05 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
2016/06/24 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
Vue中div contenteditable 的光标定位方法
2018/08/25 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
python 控制语句
2011/11/03 Python
Python实现的批量下载RFC文档
2015/03/10 Python
python文件操作相关知识点总结整理
2016/02/22 Python
python 性能提升的几种方法
2016/07/15 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
python虚拟环境完美部署教程
2019/08/06 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python删除某个目录文件夹的方法
2020/05/26 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
Linux管理员面试题 Linux admin interview questions
2014/11/01 面试题
测绘工程个人的自我评价
2013/11/23 职场文书
干部现实表现材料
2014/02/13 职场文书
领导班子作风建设剖析材料
2014/10/11 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
业务内勤岗位职责
2015/04/13 职场文书
台风停课通知
2015/04/24 职场文书
格列夫游记读书笔记
2015/07/01 职场文书
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python