不知道你要写的文件是不是在本地服务器,is_writable函数不支持对远程文件的操作.

解决方案 »

  1.   

    是本地服务器啊,程序在上面,我又测试了一下,发现chmod()也不能用,怎么这么奇怪啊?
    <?
      chmod("t",0777);  //文件夹t是存在的
    ?>
      

  2.   

    请参考手册~关于chmod的注解~~注: 当前用户指的是执行 PHP 的用户。很可能和通常的 shell 或者 FTP 用户不是同一个。在大多数系统下文件模式只能被文件所有者的用户改变。 注: 本函数不能作用于远程文件,被检查的文件必须通过服务器的文件系统访问。注: 当安全模式打开的时候,PHP 会检查所操作的文件是否和正在执行的脚本具有相同的 UID (所有者)。要注意的是,不能修改 SUID,SGID 和 sticky bits。 
      

  3.   

    什么意思啊?意思是只在mkdir()建立的瞬间才可以chmod()吗?
      

  4.   

    你的目录如果不是php程序建的话,php不一定有权限修改目录的权限。
      

  5.   

    首先你必须理解*NIX的文件系统模型,你才能真正理解chmod的运作原理~~当你的文件的owner不是apache用户的时候,且非owner没有权限对文件进行操作(比如非root用户)就会出现权限不足的问题~~而safemode被开启时,这种权限的检测将更为严格~
      

  6.   

    所有文件和文件夹由安装程序来创建或者提示通过FTP、Shell来手动修改
      

  7.   

    确认不是处在安全模式下
    确认目标子目录的父目录有写权限
    用 chmod("t",0666);  而不是 chmod("t",0777); 赋予执行权是危险的
    尝试用ftp工具修改权限