利用php下载xls文件(自己动手写的)


Posted in PHP onApril 18, 2014

昨天看ECSHOP源码的时候,碰到了一点自己没有学过的只是--如何利用php实现下载xls文件。根据它的源码,我动手实现了一下,成功实现了这个效果。

源码:

<?php 
/* 
*@Description:下载xls表 
* 
* 
*/ 
function downloadXls($filename=''){ 
$filename = !empty($filename) ? $filename : die('nothing'); //header 的作用是 新建一个被下载的test.xls 
header("Content-Type: application/vnd.ms-excel; charset=utf8"); 
header("Content-Disposition: attachment; filename=$filename"); 
//这里需要被输出的内容直接输出到test.xls文件中 
echo 'This is the test!'; 
exit; 
} 
$fileName = 'test.xls'; 
downloadXls($fileName); 
?>

效果:

利用php下载xls文件(自己动手写的) 

注意:如果输出的是中文信息的话,要注意字符编码的格式转换!

但如果我想下载的是服务器中保存的xls文件呢?

经过查看php手册:发现很简单就可以实现这个功能了,使用到了一个 readfile函数 。代码如下:

<?php 
/* 
*@Description:下载xls表 
* 
* 
*/ 
function downloadXls($filename=''){ 
$filename = !empty($filename) ? $filename : die('nothing'); //header 的作用是 新建一个被下载的test.xls 
header("Content-Type: application/vnd.ms-excel; charset=utf8"); 
header("Content-Disposition: attachment; filename=$filename"); 
//这里是需要被输出的文件 
readfile($filename); 
} 
$fileName = 'test.xls'; 
downloadXls($fileName); 
?>

效果:

利用php下载xls文件(自己动手写的) 

再拓展一下:如果我想下载的是一个txt文件呢,pdf文件呢?

实现的方法就是修改header 输出中的Content-Type中的内容!

有什么不多的地方,请大神指出!

PHP 相关文章推荐
一个取得文件扩展名的函数
Oct 09 PHP
比较discuz和ecshop的截取字符串函数php版
Sep 03 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
Nov 06 PHP
非常实用的PHP常用函数汇总
Dec 17 PHP
php编写的抽奖程序中奖概率算法
May 14 PHP
PHP+JS实现大规模数据提交的方法
Jul 02 PHP
php array_udiff_assoc 计算两个数组的差集实例
Nov 12 PHP
PHP合并数组的2种方法小结
Nov 24 PHP
php使用变量动态创建类的对象用法示例
Feb 06 PHP
PHP数组式访问接口ArrayAccess用法分析
Dec 28 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
May 28 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
Apr 14 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
Apr 18 #PHP
从PHP的源码中深入了解stdClass类
Apr 18 #PHP
理解PHP中的stdClass类
Apr 18 #PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
Apr 17 #PHP
php实现的漂亮分页方法
Apr 17 #PHP
codeigniter中测试通过的分页类示例
Apr 17 #PHP
php生成静态页面的简单示例
Apr 17 #PHP
You might like
深入理解PHP原理之异常机制
2010/08/21 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
php控制文件下载速度的方法
2015/03/24 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
2013/10/17 Javascript
JavaScript中this关键词的使用技巧、工作原理以及注意事项
2014/05/20 Javascript
javascript生成随机数方法汇总
2015/11/12 Javascript
jQuery继承extend用法详解
2016/10/10 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
2016/12/08 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
2019/05/01 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
[09:43]DOTA2每周TOP10 精彩击杀集锦vol.5
2014/06/25 DOTA
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
Python3基础教程之递归函数简单示例
2019/06/07 Python
python里运用私有属性和方法总结
2019/07/08 Python
浅谈Pytorch torch.optim优化器个性化的使用
2020/02/20 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
出国考察邀请函
2014/01/21 职场文书
党员民主评议自我评价
2014/10/20 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
被告代理词范文
2015/05/25 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android
mysql函数之截取字符串的实现
2022/08/14 MySQL