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 09 PHP
Mysql中limit的用法方法详解与注意事项
Apr 19 PHP
php实现的Cookies操作类实例
Sep 24 PHP
php编程中echo用逗号和用点号连接的区别
Mar 26 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
Sep 30 PHP
php 数组处理函数extract详解及实例代码
Nov 23 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
ThinkPHP实现的rsa非对称加密类示例
May 29 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
Feb 15 PHP
PhpStorm连接服务器并实现自动上传功能
Dec 09 PHP
ThinkPHP5和ThinkPHP6的区别
Mar 31 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 地址栏信息的获取代码
2009/01/07 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
2019/03/25 PHP
JavaScript jquery及AJAX小结
2016/01/24 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
解决前端跨域问题方案汇总
2016/11/20 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
解决VUEX兼容IE上的报错问题
2018/03/01 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
解决LayUI表单获取不到data的问题
2018/08/20 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
2018/11/14 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
web.py获取上传文件名的正确方法
2014/08/26 Python
python实现将汉字转换成汉语拼音的库
2015/05/05 Python
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
浅谈python字符串方法的简单使用
2016/07/18 Python
Python查询IP地址归属完整代码
2017/06/21 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
python利用tkinter实现屏保
2019/07/30 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
2020/01/25 Python
利用PyQt中的QThread类实现多线程
2020/02/18 Python
python3检查字典传入函数键是否齐全的实例
2020/06/05 Python
Python 字符串池化的前提
2020/07/03 Python
寄语是什么意思
2014/04/10 职场文书
中职生自荐信范文
2014/06/15 职场文书
运动会横幅标语
2014/06/17 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
思想作风建设心得体会
2014/10/22 职场文书
个人借款协议书范本
2014/11/17 职场文书
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS