`
hongtoushizi
  • 浏览: 358303 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

PHP使用文件流下载文件方法

    博客分类:
  • php
php 
阅读更多

 

 

PHP使用文件流下载文件方法

 

 

1、flush — 刷新输出缓冲
2、ob_clean — 清空(擦掉)输出缓冲区
注:上面2个函数可以解决PHP下载文件内容乱码


DEMO :

<?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("testfile.doc");

?>
分享到:
评论

相关推荐

    php文件流下载.txt

    php文件流下载,

    pdf.js使用文件流预览pdf

    网上大部分pdf.js都是用url方式预览pdf,此处给出pdf.js使用文件流预览pdf的Web工程; 此是maven工程; 100%能运行;

    php文件流的读取与写入

    6为本文件写入。7为文件读取。8为写入新文件

    php 发送与接收流文件例子

    php 发送与接收流文件例子 sendStreamFile.php 把文件以流的形式发送 receiveStreamFile.php 接收流文件并保存到本地

    PHP文件流实现大文件上传

    通过对文件读写操作实现大文件上传,并支持断点续传。

    php下载文件file_get_contents php input

    php下载文件file_get_contents php input php input是获得raw原始数据流,可以访问请求的原始数据的只读流 所以比$_POST更低层,能作的事情也更多

    php 20个实例文件简单上传下载源码

    php上传下载源码,目前最流行最简历的20套php上传源码,下载就可使应用。

    使用PHP将图片转化为base64数据流

    使用PHP将图片转化为base64数据流 一、开发环境 1、环境搭建:Windows 8+Apache 2.4.18+MySQL 5.7.11+PHP 7.1.0 。 2、文本编辑器:Sublime Text3。 二、主要技术 本实验主要使用GD库、函数的封装和调用实现图片和...

    PHP接收App端发送文件流的方法

    本文实例讲述了PHP接收App端发送文件流的...以下代码是发送单张图片和参数PHP文件,多张图片可循环调用。 &lt;?php /* curl_post.php */ // 设置请求的POST地址,必须是包含网址的域名,不能是相对路径 $url = 'http:

    PHP与Web页面交互 -文件上传和下载.ppt

    * PHP与Web页面交互 -----文件上传和下载 课程内容 文件上传 文件下载 一、文件上传 文件上传从本质上讲,就是将表单数据的一部分提交到服务器端。只是因为其数据类型(字节流或二进制流)不一样,从而导致在服务器...

    前端Javascript+Html5+后端PHP分块上传文件

    前端Javascript+Html5+后端PHP分块上传文件,PHP分块上传大文件,该项目可以正常运行,入口为index.html,需要正确配置fileDir的读写权限 目前有测试过上传1.5G左右的没有问题(未测试更大的文件),理论上更大的...

    php发送与接收流文件的方法

    主要介绍了php发送与接收流文件的方法,实例分析了php针对流文件的常见操作技巧,需要的朋友可以参考下

    PHP生成Html文件

    总结有如下三种方法 1,下面使用模版的一个方法! &lt;?php $fp = fopen ("templets.html","a"); if ($fp){ $fup = fread ($fp,filesize("templets.html")); $fp2 = fopen ("html.shtml","w"); if ($fwrite ($fp2,$fup)){...

    PHP使用CURL实现下载文件功能示例

    本文实例讲述了PHP使用CURL实现下载文件功能。分享给大家供大家参考,具体如下: 如果使用CURL下载从微信手机端上传的图片?参考下面代码 /** * CURL下载文件 成功返回文件名,失败返回false * @param $url * @...

    php通过文件流方式复制文件的方法

    本文实例讲述了php通过文件流方式复制文件的方法。分享给大家供大家参考。具体分析如下: php的stream_copy_to_stream()函数可以被用来将一个流中的数据复制到另一个。下面的代码演示了通过流的方式复制文件的代码 ...

    ZipStream-PHP, pablotron流库zip的fork.zip

    ZipStream-PHP, pablotron流库zip的fork ZipStream自述文件 请查看 LICENSE.md 文件以获得许可和保修信息。 这里软件的最新版本可以在以下网址获得: https://github.com/maennchen/ZipStream-PHP安装如果你

    NodeJs form-data格式传输文件的方法

    本文介绍了Node Js 使用KOA处理form-data格式传输过来的文件,分享给大家。具体如下: 使用koa有一段时间了,评价是小巧精悍,只封装了基本的如request对象和response对象到上下文中,其他功能基本上靠第三方中间件...

    java文件文档在线预览项目解决方案系统源码.zip

    JAVA文件文档在线预览项目解决方案,对标业内付费产品有【永中office】【office365】【idocv】等,该项目使用流行的spring boot搭建,易上手和部署,支持主流办公文档的在线预览,如doc,docx,Excel,pdf,txt,zip,rar,...

    flysystem文件流的抽象PHP库.zip

    &lt;?php namespace League\Flysystem; interface AdapterInterface extends ReadInterface { ... const VISIBILITY_PUBLIC = 'public';... const VISIBILITY_PRIVATE =...以上就是flysystem文件流的抽象PHP库

Global site tag (gtag.js) - Google Analytics