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中的cookie
Nov 26 PHP
php生成xml简单实例代码
Dec 16 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
Apr 12 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
微信自定义菜单的处理开发示例
Apr 16 PHP
PHP环境中Memcache的安装和使用
Nov 05 PHP
用PHP写的一个冒泡排序法的函数简单实例
May 26 PHP
Thinkphp微信公众号支付接口
Aug 04 PHP
php微信扫码支付 php公众号支付
Mar 24 PHP
Yii框架常见缓存应用实例小结
Sep 09 PHP
php面向对象基础详解【星际争霸游戏案例】
Jan 23 PHP
php swoft框架实例用法
Dec 22 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
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
require.js的用法详解
2015/10/20 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
JS实现点击事件统计的简单实例
2016/07/10 Javascript
详解百度百科目录导航树小插件
2017/01/08 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
JavaScript 中的六种循环方法
2021/01/06 Javascript
Python pickle模块用法实例分析
2015/05/27 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
Python callable()函数用法实例分析
2018/03/17 Python
使用tensorflow实现线性svm
2018/09/07 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
2019/10/09 Python
详解python中各种文件打开模式
2020/01/19 Python
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
Canvas制作旋转的太极的示例
2018/03/09 HTML / CSS
雅诗兰黛香港官网:Estee Lauder香港
2017/09/26 全球购物
EJB3.1都有哪些改进
2012/11/17 面试题
年终自我鉴定
2013/10/09 职场文书
职业技术学校毕业生推荐信
2013/12/03 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
《春酒》教学反思
2016/02/22 职场文书
利用Python+OpenCV三步去除水印
2021/05/28 Python
python中的plt.cm.Paired用法说明
2021/05/31 Python
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript