在网站制作中,经常使用到文件的点击下载功能,而为了保证文件的安全性,又不能让浏览者直接看到文件的真实地址和名称,这个时候就需要使用php对文件进行名称加密并实现功能,具体如何实现呢?
1.在对应的网站html页面上添加下载链接,并将文件链接写成以md5加密格式传参形式的地址,具体代码如下:
<a href="download.php?f=c4ca4238a0b923820dcc509a6f75849b">下载图片</a>
<a href="download.php?f=c81e728d9d4c2f636f067f89cc14862c">下载文件压缩包(加密文件名,隐藏真实地址)</a>
2.创建download.php页面,获取html传递过来的参数
//1.获取地址栏取到的地址栏参数
$f=$_GET['f'];
3.使用加密字符串重新定义文件名,并与真实文件通过数组形式进行一一对应,代码如下:
$arr = array(
'c4ca4238a0b923820dcc509a6f75849b' => array('./1.jpg','图片1.jpg'),
'c81e728d9d4c2f636f067f89cc14862c' => array('./2.rar','压缩文件1.rar'),
);
3.只读方式(rb)打开文件,代码如下:
$handle=fopen($arr[$f][0],'rb');
4.告诉浏览器文件类型为八位的二进制数据流,代码如下:
header("Content-type: application/octet-stream");
5.告诉浏览器数据的处理方式,以附件的方式保存,并转换字符集保证识别中文
header("Content-disposition: attachment; filename=".iconv('utf-8', 'gbk', $arr[$f][1]));
6.循环从文件资源中读取数据,代码如下:
while ($str=fread($handle,1024)) {
echo $str;//发送到客户端
}
7.通过以上代码,就可完成这个功能,全部代码如下图所示
通过以上php代码编写完成,也就完成了在网站制作中使用php对下载文件进行重新加密命名并下载的功能,当然以上代码只是对这一个过程进行了简化,除此之外还包括文件的断点续传等,这里就不再列举,这个功能你学会了吗?
本文关键词:
php 文件下载 未经允许不得转载:郑州网站建设|郑州网站制作|荥阳网站建设|巩义网站建设|网站优化-全栈网络