如何用php建立文件夹后继续建立新文件???

jinliangonline 2006-09-14 02:56:03
平台:linux as4+php4.3+apache 2.0.52
功能:
利用php语句建立一个单独的文件夹,然后可以向这个文件夹内写入、删除文件。
最后可以直接删除这个文件夹。
请教下具体的解决方法。
现在最主要的难题是建立文件夹后不能通过php语句向文件夹内写入文件。
谢谢各位了。
...全文
1441 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinliangonline 2006-09-15
  • 打赏
  • 举报
回复
我放在其他文件夹里的fopen文件可以正常执行,可以创建文件的。
解决了,设立了safe_mode_exec_dir。谢谢参与,给分。
yunfeifan 2006-09-14
  • 打赏
  • 举报
回复
很明显php 执行的用户和组 没有权限创建文件,你可以在apache httpd.conf 文件中修改user 和group 使它有创建文件的权限就可以了
iasky 2006-09-14
  • 打赏
  • 举报
回复
if(!is_dir($testdir))
{
@mkdir($testdir, 0777);
}
if(@$fp = fopen("test.php","a+"))
{
//....
}

在同一个文件中呢
jinliangonline 2006-09-14
  • 打赏
  • 举报
回复
可是如果关闭safe mode会有潜在的危险啊。
可不可以在语句上进行修改来实现?
Robjuan 2006-09-14
  • 打赏
  • 举报
回复
很明显,你的安全模式打开了,但uid不同,所以是没法创建的
iasky 2006-09-14
  • 打赏
  • 举报
回复
你的php是在安全模式下的,这样fopen有更多的限制了,PHP 将检查被操作的目录是否和正在执行的脚本有相同的 UID。

这个就是你的问题所在
jinliangonline 2006-09-14
  • 打赏
  • 举报
回复
<?php
//建立test文件夹
$addtime=date("Ymd",time());
$testdir="./test/";
if(file_exists ($testdir)):
else:
mkdir ($testdir, 0777);
@chmod ($testdir, 0777)
endif;
?>
可以正常建立test文件夹,且属性为777.

<?php
//建立test.php
fopen("test.php","a+") or die('sss');
?>

错误提示:
Warning: fopen(): SAFE MODE Restriction in effect. The script whose uid is 532 is not allowed to access /html/worldzf/upload/upload owned by uid 48 in /html/worldzf/upload/upload/fopena.php on line 2

Warning: fopen(test.php): failed to open stream: No such file or directory in /html/worldzf/upload/upload/fopena.php on line 2
sss

aruhan 2006-09-14
  • 打赏
  • 举报
回复
linux下ftp的用户和执行php的用户是不同的!
所以在ftp能操作不一定php用户就能操作.
还有路径方面你需要注意!
iasky 2006-09-14
  • 打赏
  • 举报
回复
贴下你的程序,和出的什么错误
jinliangonline 2006-09-14
  • 打赏
  • 举报
回复
文件夹权限已经在mkdir建立时给出(0777)
zzd8310 2006-09-14
  • 打赏
  • 举报
回复
UP
iasky 2006-09-14
  • 打赏
  • 举报
回复
设置好文件夹的权限,要可写
jinliangonline 2006-09-14
  • 打赏
  • 举报
回复
fopen有些属性好像是不用原来就存在吧
可以检测有没有这个文件,没有就自行建立新文件的吧。
jinliangonline 2006-09-14
  • 打赏
  • 举报
回复
fopen那个文件是放在在建立好的文件夹里的(通过mkdir建立的)。
就是想在这个文件夹里通过php语句建立新文件。
现在向这个文件夹里通过@move_uploaded_file上传图片也不行。
Robjuan 2006-09-14
  • 打赏
  • 举报
回复
1.文件夹是否存在;
2.文件夹属性是否可读写;
3.fopen 中提供的文件名是否存在此文件!
iasky 2006-09-14
  • 打赏
  • 举报
回复
fopen前先要把文件夹建好,如果文件夹不存在,是不能fopen的

jinliangonline 2006-09-14
  • 打赏
  • 举报
回复
通过ftp上传到这个文件夹的文本文件、php文件都可以通过http访问。
但是通过http访问这个文件夹里的fopen文件却不能执行fopen功能,建立新文件失败。

lantersen 2006-09-14
  • 打赏
  • 举报
回复
那很有可能是路径的事,你试着放一个文本文件在这目录下,看能不能打开;
如果可以,再试着写个文件到些目录下;
jinliangonline 2006-09-14
  • 打赏
  • 举报
回复
文件夹权限已经在建立时给出(0777)
执行fopen命令不能给此文件夹建立新文件。
但是用ftp软件可以给此文件夹上传文件。
aruhan 2006-09-14
  • 打赏
  • 举报
回复
php语句向文件夹内写入文件
fopen("xxxx.txt", "a+");
就可以了 !如果不行就得改你所创建的文件夹权限了!


21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧