您的位置:

php文件下载功能,php实现下载功能

本文目录一览:

PHP如何下载文件

            // 下载文件  文件用绝对路径

            ob_clean();

            header('Pragma: public');

            header('Last-Modified:'.gmdate('D, d M Y H:i:s') . 'GMT');

            header('Cache-Control:no-store, no-cache, must-revalidate');

            header('Cache-Control:pre-check=0, post-check=0, max-age=0');

            header('Content-Transfer-Encoding:binary');

            header('Content-Encoding:none');

            header('Content-type:multipart/form-data');

            header('Content-Disposition:attachment; filename="'.$filename.'"'); //设置下载的默认文件名

            header('Content-length:'. filesize($dfile));  //要下载的文件

            $fp = fopen($dfile, 'r');

            while(connection_status() == 0  $buf = @fread($fp, 8192)){

                echo $buf;

            }

            fclose($fp);

            @unlink($dfile);

            @flush();

            @ob_flush();

            exit();

如何实现php点击时下载txt文件功能?

由于现在的浏览器已经可以识别格式为txt的文档格式,所以如果只是给txt文档做一个文字链接的话,可能只是打开一个新窗口显示txt文件的内容,并不能实现点击下载的目的。We have to do something else. 当然这个问题的解决办法也可以是你将你的txt文件改名为浏览器不认识的文件,比如rar,这样的话点击,浏览器不认识就只好让用户下载了。 下面这个文件就是通过设置header设置文档的格式来实现点击下载的目的,将上个页面传递过来的文件点击可以下载。 ?php$filename="/somepath/". $_GET['file']." .txt";//要下载的文件名header("Content-Type:application/force-download");header("Content-Disposition:attachment;filename=". 接着第二个header函数设置了要下载的文件,注意这里filename是不包含路径的文件名,所以用basename过滤掉路径名。这个 filename的值将来就是点击下载后弹出对话框里面的文件名,如果带路径的话,弹出对话框的文件名就是未知的,这个要注意,我就犯了这个错误,后来凭 经验自己改了,居然对了。 最后就是readfile,将文件流输出到浏览器,这样就实现了txt文件的下载,其他类型的类似。

PHP如何实现批量下载功能

原理很简单,通过一个含有图片地址的数组循环,然后使用PHP的file_get_contents函数取得图片,在使用file_put_contents函数把图片保存下来。就这样简单,希望能帮到你.顺便提供一组PHP批量下载图片文件代码供你参考:set_time_limit(0);//设置PHP超时时间$imagesURLArray

=

array_unique($imagesURLArray

);foreach($imagesURLArray

as

$imagesURL)

{

echo

$imagesURL;

echo

"

PHP典型模块与项目实战大全:PHP文件下载的原理及实现

  PHP文件下载的原理及实现

通常文件下载过程是十分简单的 建立一个链接指向到目标文件就可以了 例如下面的链接

a href=// xxx /xxx rar点击下载文件/a

但是 实际情况可能会稍复杂 比如需要用户填写完整注册信息后才可以下载该文件 这时最先想到的是使用Redirect的方式 下面介绍两种方式

( )用Redirect方式 先检查表格是否已经填写完毕和完整 然后将链接指到该文件 这样用户就可以下载 请看下面的示例代码

?php

/*文件功能 检查变量form是否完整*/

if($form){

//重新定向浏览器指向

Header( Location: // // xxx /xxx rar )

exit;

}

?

( )根据下载文件的序号来查找 链接的形式如下

a href= // xxx /download php?id= 点击下载文件/a

上面的链接使用ID方式接收要下载文件的编号 然后再用Redirect的方式连接到真实的文件链接

以上这两种方法虽然实现了文件的下载功能 但是缺点是直接暴露了文件所属的路径 而且没有防盗链的功能 所以上面的方式是简单直接但存在安全隐患的文件下载方式 在PHP中 通常是利用header()函数和fread()函数来实现安全的文件下载

例如 需要下载的是一个文件名为xxx rar的文件 首先创建文件是download php的PHP文件 通过前面的例子很容易通过文件的ID号从数据库中得到待下载文件的真实位置 在获得文件的真实存储位置后 可以通过header()函数的location参数直接重定向到这个文件 但是这样仍然是不安全的 因为某些下载软件还是可以通过重定向分析获得该文件的位置信息 因此需要用另外一种方法 就是PHP的文件处理API函数 它是通过fread()函数把文件直接输出到浏览器提示用户下载 这样所有的处理都是在服务器端完成的 因此用户就无法获得文件具体存储位置信息的 示例代码如下

?

$file_name = xxx rar ;     //下载文件名

$file_dir = /up/ ;        //下载文件存放目录

//检查文件是否存在

if (! file_exists ( $file_dir $file_name )) {

echo 文件找不到 ;

exit ()

} else {

//打开文件

$file = fopen ( $file_dir $file_name r )

//输入文件标签

Header ( Content type: application/octet stream )

Header ( Accept Ranges: bytes )

Header ( Accept Length: filesize ( $file_dir $file_name ) )

Header ( Content Disposition: attachment; filename= $file_name )

//输出文件内容

//读取文件内容并直接输出到浏览器

echo fread ( $file filesize ( $file_dir $file_name ) )

fclose ( $file )

exit ()

}

?

【代码解读】

上述代码中 程序发送Header信息是用来告诉Apache和浏览器下载文件的相关信息的 content type的含义代表文件MIME类型是文件流格式 如果在Apache配置里面把文件的MIME类型设为application/octet stream(如add application/octet stream xxx rar) 那么浏览器(客户端)就会知道 这是一个文件流格式的文件并提示用户下载 Accept Ranges是一个响应头标 它允许服务器指明将在给定的偏移和长度处 为资源组成部分的接受请求 该头标的值被理解为请求范围的度量单位 Content Length是指定包含于请求或响应中数据的字节长度 例如 Content Length: Content Disposition:attachment是用来告诉浏览器 文件是可以当做附件被下载 下载后的文件名称为$file_name该变量的值

运行download php文件 效果如图 所示 从图中可以看到文件按照预想的方式被提示下载 单击 保存 按钮将文件保存在本地

图   PHP文件安全下载

       返回目录 PHP典型模块与项目实战大全

       编辑推荐

       Java Web开发详解

       PHP Web开发学习实录

lishixinzhi/Article/program/PHP/201311/21519

怎样才能用PHP语言实现网页中的下载文件功能

?php

/*

    $file------文件名

    $_SERVER['DOCUMENT_ROOT']-----服务器跟目标

    down------自定义下载文件的文件夹

    获取文件在文件夹里面的位置

    必须是绝对路径

    Content-Type: application/force-download  强制浏览器下载

*/

     $file="xxxx.rar";

        

        $file=$_SERVER['DOCUMENT_ROOT']."/down/".$file ;

        

       

        if(is_file($file)) {

            header("Content-Type: application/force-download");

            header("Content-type: application/octet-stream");

            header("Content-Disposition: attachment; filename=".basename($file));

            readfile($file);

            exit;

        }else{

            echo "文件不存在!";

            exit;

        }        

?

菜鸟求助!php里如何实现下载功能?

用header来实现

给你一个示例代码。无论什么功能,分三步:

1.格式

2.设置Content-Disposition属性

3.读文件,完成功能

?php

// 下载的文件是pdf格式

header('Content-type: application/pdf');

//重命名为downloaded.pdf

header('Content-Disposition: attachment; filename="downloaded.pdf"');

// 源文件为original.pdf

readfile('original.pdf');

?