基于php下载文件的详解
2015-01-24信息快讯网
本篇文章是对php下载文件进行了详细的分析介绍,需要的朋友参考下
php下载文件,比如txt文件。出现的效果就是,弹出浏览器自带的下载框,出现另存为操作。有时候会出现内存溢出和超时的现象。
超时的话,设置set_time_limit(0);
出现内存溢出的话,有可能是因为从数据库中取出的数据量太大导致的。
如果是从文件中读取的话,出现内存溢出的话,就是代码读取方式不正确,调用files或者filegetcontens才会
如果是fopen的话,就给一个缓冲区,固定大小,读入然后写入,不会出现内存溢出的情况。
如代码:
if (file_exists($file_path)) { //如果文件存在 $handle = fopen($file_path, "r"); while (!feof($handle)) { $content = fgets($handle, 4096); //读取一行 echo $content; //输出到缓冲区,即php://stdout。达到缓冲区设置值后由tcp传给浏览器进行输出 一般到512字节就会通过网络输出给浏览器 } fclose($handle); }
但是在输出之前,要调用一次,@ob_end_flush();不能循环调用,只调用一次就好。
@ob_end_flush();//冲刷出(送出)输出缓冲区内容并关闭缓冲
文件下载:
content-type://下载的格式,浏览器不能解析的格式就会弹出下载框
header("Content-Type: application/force-download"); header("Content-Type: application/download"); header("Content-Transfer-Encoding: binary"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Pragma: no-cache"); Header("Content-type: application/octet-stream"); //响应内容类型 Header("Accept-Ranges: bytes"); Header("Accept-Length: ".filesize($filename). ' bytes'); Header('Content-Disposition: attachment; filename='.$filename); //HTTP响应头
is_uploaded_file函数引发的不能上传文件问题
php中过滤非法字符的具体实现
PHP时间戳 strtotime()使用方法和技巧
PHP页面中文乱码分析
php四种基础算法代码实例
教你如何使用php session
php 强制下载文件实现代码
简单的php文件上传(实例)
PHP error_log()将错误信息写入一个文件(定义和用法)
php获取目录所有文件并将结果保存到数组(实例)
使用PHP下载CSS文件中的图片的代码
php 下载保存文件保存到本地的两种实现方法
php对csv文件的读取,写入,输出下载操作详解
解析PHP实现下载文件的两种方法
解析如何在PHP下载文件名中解决乱码的问题
深入php数据采集的详解
用PHP实现浏览器点击下载TXT文档的方法详解
优化PHP代码技巧的小结
PHP无限分类(树形类)的深入分析
基于php无限分类的深入理解
php curl的深入解析
PHP 处理TXT文件(打开/关闭/检查/读取)
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
使用php实现下载生成某链接快捷方式的解决方法
php获取本地图片文件并生成xml文件输出具体思路
php笔记之:有规律大文件的读取与写入的分析
input file获得文件根目录简单实现
php上传apk后自动提取apk包信息的使用(示例下载)
关于二级目录拖拽排序的实现(源码示例下载)
php实现文件下载更能介绍
php下载文件的代码示例