1、flush — 刷新输出缓冲

2、ob_clean — 清空(擦掉)输出缓冲区

此函数用来丢弃输出缓冲区中的内容。

此函数不会销毁输出缓冲区,而像 ob_end_clean() 函数会销毁输出缓冲区。

注:上面2个函数可以解决PHP下载文件内容乱码

代码如下

// 文件名不要用中文
//fname为要下载的文件名
//$fpath为下载文件所在文件夹,默认是downlod
function download($fname,$fpath="download/"){

    //避免中文文件名出现检测不到文件名的情况,进行转码utf-8->gbk$filename=iconv('utf-8', 'gb2312', $fname);$path=$fpath.$filename;if(!file_exists($path)){//检测文件是否存在echo "文件不存在!";die();}$fp=fopen($path,'r');//只读方式打开$filesize=filesize($path);//文件大小//返回的文件(流形式)header("Content-type: application/octet-stream");//按照字节大小返回header("Accept-Ranges: bytes");//返回文件大小header("Accept-Length: $filesize");//这里客户端的弹出对话框,对应的文件名header("Content-Disposition: attachment; filename=".$filename);//================重点====================ob_clean();flush();//=================重点===================//设置分流$buffer=1024;//来个文件字节计数器$count=0;while(!feof($fp)&&($filesize-$count>0)){$data=fread($fp,$buffer);$count+=$data;//计数echo $data;//传数据给浏览器端}fclose($fp);}download("CGEX脚本清单.doc")

转载于:https://blog.51cto.com/13708834/2105341

PHP文件流下载内容相关推荐

  1. 前端通过后端返回文件流下载文件

    // 把文件流下载下来 const downloadMethods = (name, res) => {const blob = new Blob([res.data], { type: 'ap ...

  2. IE浏览器报错Unhandled promise rejection Error: 拒绝访问。文件流下载

    项目内有很多导出文件,下载文件功能,前端采用的是文件流下载方式,请求后端接口,返回文件流. 最开始不清楚普通的动态创建a标签方法并不兼容IE,后来在IE上面测试出现了bug "Unhandl ...

  3. 阿里OSS文件流下载问题

    阿里OSS文件流下载问题 阿里OSS获取文件流,因为是网络传输流,所以ossObject.getObjectContent().available()不能一次性获取文件大小:传回的文件流,如果一次读取 ...

  4. vue 将文件url 改成文件流下载

    vue 将后台返回文件url 改成文件流下载 由于直接a 标签下载视频,音频会打开新的窗口,所以改用文件流下载 一.图片 exportData(row) {console.log('row', row ...

  5. 文件流下载ppt文件无法打开或文件已损坏

    在项目中遇到"文件流下载ppt文件无法打开或文件已损坏"这种情况,我也是查阅资料来一个排查问题的汇总 1.要设置responseType,在接口传参的时候传参过去 2.注意接口返回 ...

  6. 前端 js jQuery ajax实现文件流下载, 下载doc,xsl等文件内容乱码问题

    问题描述: 前端通过jQuery ajax接受后端的文件流,前端下载文件后内容乱码 后端代码: Header("Content-type: application/octet-stream& ...

  7. Java实现minio文件流下载文件,浏览器不下载

    在我写完minio下载功能时,浏览器怎么也不执行下载,纯纯没反应,只返回了流给前端.就在百思不得其解时,突然去翻看之前前端写的下载代码请求,此时发现之前用的是Windows.open(url),现在不 ...

  8. byte转文件流 下载到本地

    此方法将byte类型文件转为文件流保存到本地 byte 经过BASE64Decoder 进行编码之后的类型 所以需要解码 防止出现乱码及文件损毁 /*** byte 转文件 下载到本地* @param ...

  9. ASP.NET 实现Base64文件流下载PDF

    因为业务需要调用接口获取的是 Base64文件流 需要提供给客户下载PDF文档 源码部分借鉴网上,具体地址忘记了. //Base64文件流 byte[] buffer = Convert.FromBa ...

  10. vue-axios下载文件流blob,ie下载报传递给系统调用的数据区域太小.ie文件流下载报错;文件下载失败将blob的错误信息转换成json格式

    本次下载是后台文件流传输,前端下载,前端将拿到的下载id和名称downloadName传递给下载方法:如果是多个下载,可以采用数组for循环 情景描述: 1.如果符合导出条件, 后端直接返回数据流,如 ...

最新文章

  1. python绘制简单直方图-Python数据分析:统计函数绘制简单图形
  2. 全局组、域本地组、通用组到底有什么区别?它们之间的关系如何?
  3. html5外置样式表,HTML5移动端通用css详解
  4. c++exe程序在别人电脑上双击无法打开_你可能不知道的电脑软件打开方式总结!
  5. Python命令行参数
  6. [我的成长:1004期]春节快乐
  7. 扩散模型 (Diffusion Model) 简要介绍与源码分析
  8. LVS(三)lvs+keeplive
  9. DirectShow 基础教程
  10. word中 插入公式及交叉引用
  11. 计算机基础笔记(摘录)
  12. 山东理工大学ACM平台题答案关于C语言 1177 C语言实验——时间间隔
  13. Docker 下 jitsi-meet 视频服务器 安装部署
  14. [AHK]自动运行一键选股
  15. VM (虚拟机)下载及安装详细步骤
  16. 多个vue项目合并成一个_将多个PDF文档合并成一个的方法,PDF合并软件,合并PDF...
  17. fsolve算得停不下来matlab,fsolve计算结果问题
  18. gitlab CI/CD自动化部署
  19. jQuery的mobile开发
  20. 图像增强---空域滤波之平滑

热门文章

  1. 阿里、Uber都在用的Flink你了解多少?
  2. iPhone企业应用实例分析之四:技术要点分析(1)
  3. 53多项式08——多元多项式、齐次多项式和对称多项式
  4. 一文搞懂Java泛型到底是什么东东
  5. linux运行隐藏脚本,linux 下隐藏进程的一种方法及遇到的坑
  6. python的invalid syntax是什么意思_python中出现invalid syntax报错的几种原因
  7. python安装详细步骤mac_Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
  8. 蓝桥杯2015年第六届javaB组省赛第一题-三角形面积
  9. 一步一步教你如何安装Dart
  10. Android如何实现音频输出路由的切换