`
hongtoushizi
  • 浏览: 374739 次
  • 性别: 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文件流下载的相关知识点,包括...通过上述介绍,我们可以看出PHP文件流下载是一种非常实用的技术,它不仅能够满足基本的文件下载需求,还能有效提升用户体验和系统的整体性能。

    php文件流的读取与写入

    在PHP中,文件流操作是一种高效且灵活的方式来处理文件读取和...以上就是PHP文件流的读取和写入操作的详解。理解并熟练运用这些函数可以让你更高效地处理文件操作。记住,在每次操作后都关闭文件流,以释放系统资源。

    pdf.js使用文件流预览pdf

    PDF.js支持文件流预览,意味着我们可以从服务器获取PDF的数据流,然后逐步解析和显示内容,而不需要等待整个文件下载完成。 要使用PDF.js实现文件流预览PDF,我们需要以下几个步骤: 1. **设置项目环境**:由于...

    PHP文件流实现大文件上传

    总结来说,PHP文件流机制提供了一种高效且灵活的方式来处理大文件上传,结合断点续传功能,可以极大地提高用户在上传大文件时的体验。通过合理地组织代码和处理错误,我们可以创建一个稳定、可靠的文件上传系统。

    PHP文件上传和下载

    `upload.php`可能用于处理文件上传,`download.php`用于处理文件下载,而`main.php`可能是主页面,用于展示上传和下载的界面及交互逻辑。`upload/`目录可能是存放上传文件的服务器目录。不过,具体的实现细节需要...

    PHP——文件下载

    本篇将详细讲解如何使用PHP进行文件下载,并分析给定代码的工作原理。 首先,我们要明白,一般的文件下载是通过浏览器直接访问URL来实现的,但当遇到一些浏览器可以识别并尝试打开的文件类型(如图片、HTML网页等)...

    php 发送与接收流文件例子

    下面我们将详细探讨`sendStreamFile.php`和`receiveStreamFile.php`这两个文件如何实现流文件的发送和接收。 首先,我们来看`sendStreamFile.php`。这个脚本的主要任务是将一个文件以流的形式发送出去。通常,这...

    php下载远程文件到本地存储的函数类.zip

    下面我们将详细讨论这个函数类的工作原理、使用方法以及可能涉及的相关知识点。 首先,我们需要理解PHP中的文件处理机制。PHP提供了多种内置函数来处理文件,如`file_get_contents()`用于读取文件内容,`file_put_...

    获取上传文件的流

    通过`move_uploaded_file()`函数可以将文件移动到服务器的特定位置,或者直接使用`file_get_contents('php://input')`来读取原始POST数据并处理文件流。 6. **Python Flask**: 使用Flask框架,可以借助`flask....

    PHP 简单实现文件上传、保存、下载的功能(云盘)

    7. **文件下载**:当用户请求下载文件时,PHP会根据文件ID或URL从数据库检索文件路径,然后设置响应头,指示浏览器开始下载文件。 8. **文件删除**:PHP可以连接到数据库,根据用户提供的文件ID或名称,从数据库和...

    PHP通过CURL下载文件

    在PHP中使用CURL进行文件下载主要涉及以下几个步骤: 1. **初始化CURL会话**:通过`curl_init()`函数创建一个新的CURL会话。 2. **设置选项**:通过`curl_setopt()`函数设置CURL选项,如URL、返回数据模式等。 3. *...

    php实现的压缩文件的上传与下载功能模块.rar

    - 要实现文件下载,可以使用PHP的`header()`函数设置响应头,如`Content-Type`(指定文件类型)和`Content-Disposition`(指定文件下载时的名称)。 - 使用`readfile()`或`file_get_contents()`函数读取文件内容,...

    php下载文件file_get_contents php input

    在处理文件下载时,这个函数能够直接读取远程文件内容并将其保存到本地,或者直接输出到浏览器供用户下载。本文将深入探讨如何使用`file_get_contents`下载文件,并结合`php input`这一输入流概念进行讲解。 首先,...

    基于HTTP PHP文件下载类.rar(很好很实用哦)

    在PHP开发中,文件下载是一个常见的需求,例如用户请求下载网站上的资源,如文档、图片或音频等。这里我们关注的焦点是“基于HTTP PHP文件下载类”。这个压缩包文件包含了一个名为`httpdownload.class.php`的文件,...

    2.PHP使用插件fpdf fpdi chinese.php 给PDF文件加水印

    在PHP开发中,有时我们需要对PDF文件进行操作,例如添加水印,以保护文档或标记版权。本主题将深入探讨如何使用fpdf和fpdi这两个PHP插件,以及chinese.php辅助文件,来实现中文文字和图片水印的添加。 首先,FPDF是...

    PHP 文件操作函数

    通过理解和掌握这些PHP文件操作函数,开发者可以有效地处理文件系统,构建安全、高效的Web应用。在实际开发中,结合具体需求,灵活运用这些函数,能解决大多数文件相关的编程问题。在实践中不断积累经验,才能更好地...

    php5环境配置文件

    4. 重启Apache服务,现在Apache应该可以解析PHP文件了。 三、VC_redist.x86.exe的作用 在安装过程中,你可能注意到`VC_redist.x86.exe`这个文件。它是Visual C++运行时库的 redistributable package,用于支持依赖...

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

    除此之外,还提到了另外一种使用PHP读取远程流文件的方法。通过打开一个指向远程文件的文件指针,再设置合适的HTTP头信息,可以直接以流的形式读取和传输远程文件。设置Content-type为application/octet-stream,...

    php生成zip压缩文件

    在PHP中生成ZIP压缩文件是一项常见的任务,尤其是在网站开发中,我们可能需要将多个文件打包成一个可下载的压缩文件,以方便用户批量获取或传输数据。本篇将详细讲解如何利用PHP的ZipArchive类来实现这一功能。 ...

    php保存远程文件 可以用来下载东西

    在PHP编程中,保存远程文件是一项常见的任务,特别是在数据采集、文件下载或网络资源管理的场景下。这个标题“php保存远程文件 可以用来下载东西”表明我们要讨论的是如何利用PHP来下载并保存网络上的文件,如图片、...

Global site tag (gtag.js) - Google Analytics