免费注册 查看新帖 |

ChinaUnix.net

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

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

论坛徽章:
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 编辑 ]

论坛徽章:
379
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
发表于 2009-06-04 08:43 |显示全部楼层
Selinux关闭看看

评分

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

查看全部评分

论坛徽章:
0
发表于 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页面就没有办法遍历文件夹里面的文件。
大家在帮忙想想。在次谢谢大家。

论坛徽章:
379
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
发表于 2009-06-04 10:55 |显示全部楼层
可能是字符编码的问题

论坛徽章:
0
发表于 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
发表于 2009-06-04 19:34 |显示全部楼层

回复 #5 mfkwwgi 的帖子

可以 umask=022

论坛徽章:
0
发表于 2009-06-04 20:53 |显示全部楼层
原帖由 vermouth 于 2009-6-4 19:34 发表
可以 umask=022


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

论坛徽章:
379
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
发表于 2009-06-04 22:02 |显示全部楼层

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

论坛徽章:
0
发表于 2009-06-22 10:09 |显示全部楼层
学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

基于案例的 SQL 优化实战训练营

讲师:中电福富特级专家梁敬彬,参与本次课程培训,你将收获:
1. 能编写出较为高效的 SQL;
2. 能解决70%以上的数据库常见优化问题;
3. 能得到老师提供的高效的相关工具和解决方案;
4. 能举一反三,收获不仅仅是 SQL 优化。
现在购票享受8.8折优惠!
----------------------------------------
优惠时间:2019年3月20日前

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP