通过php上载的权限问题

通过php上载的权限问题,php,permissions,email,imap,Php,Permissions,Email,Imap,通过php的imap_*函数,我试图将电子邮件的附件存储在我的服务器上。 我想将文件名为($f)的文件的内容($c,string)存储在一个名为thread id($thread)的子目录中。m_attpath是一个定义的常量,绝对指向基本文件夹 if(!is_dir(m_attpath.$thread)){ mkdir(m_attpath.$thread); }; $handle = fopen(m_attpath.$thread.'/'.$f, 'w+')

通过php的imap_*函数,我试图将电子邮件的附件存储在我的服务器上。 我想将文件名为($f)的文件的内容($c,string)存储在一个名为thread id($thread)的子目录中。m_attpath是一个定义的常量,绝对指向基本文件夹

    if(!is_dir(m_attpath.$thread)){
         mkdir(m_attpath.$thread);
    };

$handle = fopen(m_attpath.$thread.'/'.$f, 'w+');
fwrite($handle, $c);
fclose($handle);
但是现在我正在努力设置权限,以便通过download.php页面查看附件

主文件夹m_attpath=0777 线程文件夹是0644 他们自己的文件也是0644

当通过我的浏览器查看这些文件时,它们最终会变成一个问号。浏览器不工作;t显示404警告。在ftp程序中,我可以看到附件的大小。有点不对劲,但我找不到什么。有人能帮我吗


thanx

如果m_attpath是一个常数,则此代码是错误的

应该是


$handle=fopen(m_attpath.$thread.'/'.$f,'w+');


你说“他们最终会成为一个问号”是什么意思?

那美元是一个打字错误。“它们以问号结束”:浏览器显示问号,而不是图片本身。所以它没有404,但看起来不可读。如果直接(而不是通过浏览器)打开文件会发生什么?我认为文件大小看起来不错,因为您提到可以在ftp程序中看到它。在我看来,这不是权限问题,因为权限看起来没问题,如果是的话,您在编写文件时会收到php警告,或者在通过浏览器访问时会收到403警告。坦率地说,我不知所措。你能发更多的代码吗?我建议验证$c是否确实包含您所期望的内容。它在linux系统上不会有任何区别,但您应该对二进制文件使用“wb+”。