php输入密码器下载文件,PHP安全下载文件的方法

本文实例讲述了PHP安全下载文件的方法。分享给大家供大家参考,具体如下:

header('Content-Type:text/html;Charset=utf-8');

define('ROOT_PATH', dirname(__FILE__));

/**

* 下载文件

* @param string $file_path 绝对路径

*/

function downFile($file_path) {

//判断文件是否存在

$file_path = iconv('utf-8', 'gb2312', $file_path); //对可能出现的中文名称进行转码

if (!file_exists($file_path)) {

exit('文件不存在!');

}

$file_name = basename($file_path); //获取文件名称

$file_size = filesize($file_path); //获取文件大小

$fp = fopen($file_path, 'r'); //以只读的方式打开文件

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

header("Accept-Ranges: bytes");

header("Accept-Length: {$file_size}");

header("Content-Disposition: attachment;filename={$file_name}");

$buffer = 1024;

$file_count = 0;

//判断文件是否结束

while (!feof($fp) && ($file_size-$file_count>0)) {

$file_data = fread($fp, $buffer);

$file_count += $buffer;

echo $file_data;

}

fclose($fp); //关闭文件

}

downFile(ROOT_PATH . '/down/Sunset.jpg');

?>

说明:文件名称可以接受中文名称。文件格式为 utf-8。

希望本文所述对大家PHP程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值