php 下载保存文件保存到本地的两种实现方法


Posted in PHP onAugust 12, 2013

第一种:

<?php 
function downfile()
{
 $filename=realpath("resume.html"); //文件名
 $date=date("Ymd-H:i:m");
 Header( "Content-type:  application/octet-stream "); 
 Header( "Accept-Ranges:  bytes "); 
Header( "Accept-Length: " .filesize($filename));
 header( "Content-Disposition:  attachment;  filename= {$date}.doc"); 
 echo file_get_contents($filename);
 readfile($filename); 
}
downfile();
?>


<?php 
function downfile($fileurl)
{
 ob_start(); 
 $filename=$fileurl;
 $date=date("Ymd-H:i:m");
 header( "Content-type:  application/octet-stream "); 
 header( "Accept-Ranges:  bytes "); 
 header( "Content-Disposition:  attachment;  filename= {$date}.doc"); 
 $size=readfile($filename); 
  header( "Accept-Length: " .$size);
}
 $url="url地址";
 downfile($url);
?>

第二种:

<?php 
function downfile($fileurl)
{
$filename=$fileurl;
$file  =  fopen($filename, "rb"); 
Header( "Content-type:  application/octet-stream "); 
Header( "Accept-Ranges:  bytes "); 
Header( "Content-Disposition:  attachment;  filename= 4.doc"); 
$contents = "";
while (!feof($file)) {
 $contents .= fread($file, 8192);
}
echo $contents;
fclose($file); 
}
$url="url地址";
downfile($url);
?>

PHP实现下载文件的两种方法。分享下,有用到的朋友看看哦。

方法一:

<?php
/**
* 下载文件
* header函数
*
*/
header('Content-Description: File Transfer');

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($filepath));
header('Content-Transfer-Encoding: binary');
header('Expires: 0′);
header('Cache-Control: must-revalidate, post-check=0, pre-check=0′);
header('Pragma: public');
header('Content-Length: ' . filesize($filepath));
readfile($file_path);
?>

了解php中header函数的用法。

方法二:

<?php
//文件下载
//readfile
$fileinfo = pathinfo($filename);
header('Content-type: application/x-'.$fileinfo['extension']);
header('Content-Disposition: attachment; filename='.$fileinfo['basename']);
header('Content-Length: '.filesize($filename));
readfile($thefile);
exit();
?>
PHP 相关文章推荐
PHP定时自动生成静态HTML的实现代码
Jun 20 PHP
php下安装配置fckeditor编辑器的方法
Mar 02 PHP
PHP实现的简单网络硬盘
Jul 29 PHP
浅析Yii2 GridView实现下拉搜索教程
Apr 22 PHP
PHP生成短网址方法汇总
Jul 12 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
Oct 08 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
Oct 29 PHP
PHP实现ASCII码与字符串相互转换的方法
Apr 29 PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
Feb 20 PHP
Laravel如何实现自动加载类
Oct 14 PHP
CodeIgniter上传图片成功的全部过程分享
Aug 12 #PHP
php实现MD5加密16位(不要默认的32位)
Aug 12 #PHP
php中的Base62类(适用于数值转字符串)
Aug 12 #PHP
PHP实现把数字ID转字母ID
Aug 12 #PHP
PHP计算2点经纬度之间的距离代码
Aug 12 #PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
Aug 10 #PHP
浅析php中常量,变量的作用域和生存周期
Aug 10 #PHP
You might like
wiki-shan写的php在线加密的解密程序
2008/09/07 PHP
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
2016/11/23 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
JQuery select标签操作代码段
2010/05/16 Javascript
Jquery中删除元素的实现代码
2011/12/29 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
JS实现横向与竖向两个选项卡Tab联动的方法
2015/09/27 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
javascript基本算法汇总
2016/03/09 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
vue-cli3 热更新配置操作
2020/09/18 Javascript
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
Python如何实现守护进程的方法示例
2017/02/08 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
如何使用Python 打印各种三角形
2019/06/28 Python
对Django 转发和重定向的实例详解
2019/08/06 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
毕业生在校学习的自我评价分享
2013/10/08 职场文书
3D空间设计学生找工作的自我评价
2013/10/28 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js