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面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
Jan 11 PHP
thinkphp验证码显示不出来的解决方法
Mar 29 PHP
php遍历数组的4种方法总结
Jul 05 PHP
PHP实现获取FLV文件的时间
Feb 10 PHP
PHP读取大文件的几种方法介绍
Oct 27 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
php curl批处理实现可控并发异步操作示例
May 09 PHP
php数组遍历类与用法示例
May 24 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
Aug 03 PHP
php快速导入大量数据的实例方法
Sep 23 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
全国FM电台频率大全 - 28 甘肃省
2020/03/11 无线电
深入解析PHP的引用计数机制
2013/06/14 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
详解PHP序列化反序列化的方法
2015/10/27 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
laravel5.6中的外键约束示例
2019/10/23 PHP
ExtJS 2.0实用简明教程之应用ExtJS
2009/04/29 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
详谈innerHTML innerText的使用和区别
2017/08/18 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
2019/09/11 Javascript
Vue.js的模板语法详解
2020/02/16 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
解决vuex数据页面刷新后初始化操作
2020/07/26 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
python的help函数如何使用
2020/06/11 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
你所在的项目是如何确定版本号的
2015/12/28 面试题
物业管理毕业生个人的求职信
2013/11/30 职场文书
银行见习期自我鉴定
2014/01/29 职场文书
公司授权委托书
2014/04/04 职场文书
一文搞懂php的垃圾回收机制
2021/06/18 PHP
「地球外少年少女」BD发售宣传CM公开
2022/03/21 日漫
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript