2010-07-28 118 views
0

通过php的imap_ *函数,我试图在我的服务器上存储电子邮件的附件。 我想将带有文件名($ f)的文件的内容($ c,字符串)存储在以线程ID($ thread)命名的子目录中。 m_attpath是绝对指向基本文件夹的定义常量。通过php上传权限问题

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

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

但现在我有我需要为了让附着物可见通过的download.php页面设置权限struggeling。

主文件夹m_attpath = 0777 线程文件夹是0644 文件它们自身也在0644

当看穿我的浏览器,他们最终作为一个问号的文件。浏览器不显示404警告。在一个ftp程序中,我可以看到附件的大小。有什么不对,但我找不到。谁能帮我这个?

thanx

回答

0

如果m_attpath是常量,则此代码错误。

应该

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

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

+0

$是一个错字。 “它们最终显示为问号”:浏览器显示问号而不是图片本身。所以它没有得到404,但看起来不可读。 – richardverbruggen 2010-07-28 15:36:50

+0

如果直接打开文件(不通过浏览器),会发生什么情况?我认为它的文件大小看起来不错,因为你提到你可以在一个ftp程序中看到它。在我看来,这不是一个权限问题,因为权限看起来不错,如果是这样,你会得到一个PHP警告写入文件或403通过浏览器访问它们时。坦率地说,我很茫然。你能发布更多的代码吗?我建议验证$ c真的包含你的期望。它不应该在Linux系统上有所作为,但你应该使用“wb +”作为二进制文件。 – 2010-07-30 15:28:59