您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程

织梦、phpcms程序添加ftp://、thunder://、flashget:文件下载时

费汐家2025-05-26 22:24:24phpcms教程已有4人查阅

导读我最近用PHP开源程序做了一个网站,发现添加ftp文件下载时会出错,于是看了一下plus/download.php 逐段排除,之后发现是倒数第二行代码出错。

我最近用PHP开源程序做了一个网站,发现添加ftp文件下载时会出错,于是看了一下plus/download.php 逐段排除,之后发现是倒数第二行代码出错。
header("location:{$softUrl}");
exit();
我没有系统学过PHP,所以不是很了解,搜索了一下,知道了header函数的在这里的作用,就是有来转向的,又搜索了一下关于php header ftp 出错网页,找到了一个类似的问题;
于是参考了他的做法,使用
echo " <META HTTP-EQUIV=REFRESH CONTENT= '0;URL={$softUrl} '>";
作为下载,但这时http://文件的又出错,但ftp的可正常下载了,于是我结合两者,做了一个判断
if(preg_match("#^thunder:\/\/|^ftp:\/\/|^flashget:\/\/#i", $softUrl))
{
echo " <META HTTP-EQUIV=REFRESH CONTENT= '0;URL={$softUrl} '>";
exit();
}
header("location:{$softUrl}");
exit();
这样经测试都可以下载了,如果有更好的方法的,欢迎大家交流一下,谢谢,本人是PHP的菜鸟中的菜鸟,有什么地方不对,欢迎指出。
phpcms v9也有似的问题,解决方法一样:
找到文件modules/content/down.php
找到代码:
//远程文件
if(strpos($fileurl, ':/') && (strpos($fileurl, pc_base::load_config('system','upload_url')) === false)) {
header("Location: $fileurl");
} else {
if($d == 0) {
header("Location: ".$fileurl);
} else {
$fileurl = str_replace(array(pc_base::load_config('system','upload_url'),'/'), array(pc_base::load_config('system','upload_path'),DIRECTORY_SEPARATOR), $fileurl);
$filename = basename($fileurl);
修改为:
//远程文件
if(strpos($fileurl, ':/') && (strpos($fileurl, pc_base::load_config('system','upload_url')) === false)) {
if(preg_match("#^thunder:\/\/|^ed2k:\/\/|^ftp:\/\/|^flashget:\/\/#i", $fileurl))
{
echo " <META HTTP-EQUIV=REFRESH CONTENT= '0;URL=$fileurl '>";
exit();
}
header("location:$fileurl");
exit();
} else {
if($d == 0) {
header("Location: ".$fileurl);
} else {
$fileurl = str_replace(array(pc_base::load_config('system','upload_url'),'/'), array(pc_base::load_config('system','upload_path'),DIRECTORY_SEPARATOR), $fileurl);
$filename = basename($fileurl);
即可解决

本文标签:

很赞哦! (0)

暂无内容
暂无内容
暂无内容
暂无内容
留言与评论 (共有 0 条评论)
昵称:
匿名发表 登录账号
         
验证码: