免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10143 | 回复: 15
打印 上一主题 下一主题

使用php页面 管理 ftp 服务器.问题集锦,感谢 chenyx 等人的回复!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-03 22:52 |只看该作者 |倒序浏览
两个问题.
第一个,我用php 页面去下载我FTP里面的文件,FTP用是的vsftpd+mysql做成功的.down.php下载页面的源码为:
<?
$file_name = $_GET['File'];
$file_dir = $_GET['Dir']."/";
echo $file_dir."<br>";
echo $file_name."<br>";
if (!file_exists($file_dir.$file_name))
{
        echo "file is not exist";
        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;
}
?>
当调用下载页面时.可以弹出下载对话框,并下载成功.每个下载下来的文件都一样,但文件内容为:
Warning: fopen(/tmp/vsftpd/a) [function.fopen]: failed to open stream: Permission denied in /var/www/html/down.php on line 13

Warning: filesize() [function.filesize]: stat failed for /tmp/vsftpd/a in /var/www/html/down.php on line 16

Warning: filesize() [function.filesize]: stat failed for /tmp/vsftpd/a in /var/www/html/down.php on line 18

Warning: fread(): supplied argument is not a valid stream resource in /var/www/html/down.php on line 18

Warning: fclose(): supplied argument is not a valid stream resource in /var/www/html/down.php on line 19



我FTP目录是在/tmp/vsftpd,vsftpd目录的权限是777 ,php的默认目录是在/var/www/html .是不是给权限有关??应该乍样去修改??
以上是一个问题.




下面是第二个问题:
我用ftp://url,上传的文件.用php页面遍历,只能看到ftp根目录上的文件,不能看到目录,是怎么一回事呢.??
大家帮忙想一下.是那儿的问题.谢谢

[ 本帖最后由 mfkwwgi 于 2009-12-21 13:25 编辑 ]

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
2 [报告]
发表于 2009-06-04 08:43 |只看该作者
Selinux关闭看看

评分

参与人数 1可用积分 +15 收起 理由
零二年的夏天 + 15 精品文章 ;)

查看全部评分

论坛徽章:
0
3 [报告]
发表于 2009-06-04 10:44 |只看该作者
谢谢.chenyx.第一个问题解决了.因为刚接触linux 所以这个对它很是不了解.一个问题就会卡壳很久。
我在附上一个,关闭linux的SElinux不重启linux的方法(转自:http://www.xiaojb.com/archives/tips/disabled-selinux.shtml)

Redhat系统,修改/etc/sysconfig/selinux文件:
#SELINUX=enforcing
SELINUX=disabled

重启生效,如果不想重启,用命令
setenforce 0





第一个问题完美解决了。可是第二个问题。还有一些问题。我在详细说说我的环境,我是RHEL 5做的,vsftpd+mysql,克隆vsftpdguest 本地账户(自己建立的),做的ftp。通过ftp://url上传文件,因为要做一些统计所以就用php来做下载。现在。遍历和下载是可以了,但如果ftp://url上传的文件夹带有一些空格,php页面就没有办法遍历文件夹里面的文件。
大家在帮忙想想。在次谢谢大家。

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
4 [报告]
发表于 2009-06-04 10:55 |只看该作者
可能是字符编码的问题

论坛徽章:
0
5 [报告]
发表于 2009-06-04 16:52 |只看该作者
相当感谢  chenyx 两个问题都成功了.回答太精彩了.
的确是字符编码的问题,我是这样解决的.
用$Dir=urlencode($dir."/".$file);来编码.在需要解码的时候.用$dir=urldecode($dir);解码;

呵呵.那就在送一个问题了.希望你不要见怪哈;
问题是这样的.克隆本地账户vsftpdguest ,在用ftp://url上传文件时,总是这样的权限:
-rw------- 1 vsftpdguest vsftpdguest 2419 Jun  4 14:53 problem.txt
文件夹是:
drwx------ 2 vsftpdguest vsftpdguest 4096 Jun  4 14:51 12345
我的问题.怎样让上传文件时.自动让文件对其它的组可以读,文件夹对其它的用户组可以读取里面的内容;
也就是,文件为-rw----r--文件夹为drwx---r-x 这样.我知道有个umask 命令,能不能用上?谢谢.

这样的目的是让.php可以遍历里面的文件,也可能用php来下载.
相当感谢了.

[ 本帖最后由 mfkwwgi 于 2009-6-4 16:56 编辑 ]

论坛徽章:
34
亥猪
日期:2015-03-20 13:55:11戌狗
日期:2015-03-20 13:57:01酉鸡
日期:2015-03-20 14:03:56未羊
日期:2015-03-20 14:18:30子鼠
日期:2015-03-20 14:20:14丑牛
日期:2015-03-20 14:20:31辰龙
日期:2015-03-20 14:35:34巳蛇
日期:2015-03-20 14:35:56操作系统版块每日发帖之星
日期:2015-11-06 06:20:00操作系统版块每日发帖之星
日期:2015-11-08 06:20:00操作系统版块每日发帖之星
日期:2015-11-19 06:20:00黄金圣斗士
日期:2015-11-24 10:43:13
6 [报告]
发表于 2009-06-04 19:34 |只看该作者

回复 #5 mfkwwgi 的帖子

可以 umask=022

论坛徽章:
0
7 [报告]
发表于 2009-06-04 20:53 |只看该作者
原帖由 vermouth 于 2009-6-4 19:34 发表
可以 umask=022


应该如何操作呢。是不是用vsftpdguest登陆。去umask 022呢???

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
8 [报告]
发表于 2009-06-04 22:02 |只看该作者

论坛徽章:
0
9 [报告]
发表于 2009-06-04 23:06 |只看该作者
在次感谢 chenyx 。在vsftpd.conf里面加入 anon_umask=022 成功了。现在php可以遍历ftp目录。可以成功下载里面的文件了。
下步工作就是美化php页面,linux是一个优秀的系统。学习linux真的有很多的乐趣,多亏网上像 chenyx 等人的好心帮助。
多谢你们的帮助。

论坛徽章:
0
10 [报告]
发表于 2009-06-22 10:09 |只看该作者
学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP