Home >Backend Development >PHP Tutorial >PHP实现文件安全下载_PHP

PHP实现文件安全下载_PHP

WBOY
WBOYOriginal
2016-06-01 12:35:04731browse

你可能会笑我"下载文件"如此简单都值得说当然并不是想象那么简单。例如你希望客户要填完一份表格才可以下载某一文件你第一个想法一定是用 "Redirect"的方法先检查表格是否已经填写完毕和完整然后就将网址指到该文件这样客户才能下载但如果你想做一个关于"网上购物"的电子商务网站考虑安全问题你不想用户直接复制网址下载该文件笔者建议你使用PHP直接读取该实际文件然后下载的方法去做。程序如下



            $file_name = "tianhys.exee";

            $file_dir = "/public/www/download/";

            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;}





      而如果文件路径是"http" 或者 "ftp" 网址的话则源代码会有少许改变程序如下







            $file_name
= "tianhys.exe";

            $file_dir = "http://www.tianhys.org/";

            $file = @ fopen($file_dir . $file_name,"r");

            if (!$file) {

            echo "文件找不到";

            } else {

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

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

            while (!feof ($file)) {

            echo fread($file,50000);

            }

            fclose ($file);

            }

      这样就可以用PHP直接输出文件

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn