2010-07-28 115 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