- 加入我的QQ群
- 关注我的百家号
扫描下面的二维码,“关注”我的百家号。
文件下载功能对于一般的wordpress主题来说,没有必要,因为大多数wordpress程序做出的网站根本不需要这种功能,他们只是为了展示自己的信息而已。但是,有一些比较大点的资源类网站需要有这种功能。那么,怎样为wordpress网站主题添加这种下载功能呢?wordpress自带的函数中好像没有提供这种功能。这时,我们可以通过php来简单实现。
下面就是一个简单的php实现的文件下载功能代码:
$file_name = "a.avi";
$file_size = filesize($file_name);$len = 1024;
if($file_size>100*1024*1024){
echo '<script>alert("你上传的文件超过2M");</script>';
exit;
}
$fp = fopen($file_name,"r");header("content-type:application/octet-stream");
header("accept-ranges:bytes");
header("accept-length:$file_size");
header("content-disposition:attachment;filename=".$file_name);while(!feof($fp)){
echo fread($fp,$len);
}
fclose($fp);
简单解说一下上面的代码:
$file_name是文件名;
$file_size是文件大小;
$len每次循环读取多少个字节;
if语句判断文件的大小有没有超过2M,如果超过,就提示并停止下面的代码操作;
$fp 打开文件
4个header,下载弹窗提示;这是向http协议提交信息头,告诉浏览器这是一个文件流、文件的大小以及文件名。
while 语句是循环输出$len长度的字节,直到读完
fclose 是关闭文件。
上面的文件名你可以自行更改,可以是任何文件类型:视频、图片、文本、word…… ,文件的路径也可以根据据自己的需要添加。下载文件的大小,可以根据自己的需要来设置。
为了方便使用,我们也可以把上面的代码弄成一个函数,代码如下:
function file_down($filename){
$file_name = $filename;
$file_size = filesize($file_name);$len = 1024;
if($file_size>100*1024*1024){
echo '<script>alert("你上传的文件超过2M");</script>';
exit;
}
$fp = fopen($file_name,"r");header("content-type:application/octet-stream");
header("accept-ranges:bytes");
header("accept-length:$file_size");
header("content-disposition:attachment;filename=".$file_name);
while(!feof($fp)){
echo fread($fp,$len);
}fclose($fp);
}
然后,我们在需要使用的地方使用这个函数,如果你的下载文件名为 a.jpg,代码就如下:
file_down("a.jpg");
这样,我们的wordpress主题就实现了文件的下载功能。当然,这只是一个简单的下载文件范例,如果你想为自己的主题添加这个下载功能,可以根据上面的代码来简单实现,也可以更深入地扩展一下。