2010-07-28 6 views
0

php의 imap_ * 기능을 통해 내 이메일에 첨부 파일을 저장하려고합니다. 파일 아이디 ($ f)를 가진 파일의 내용 ($ c, string)을 스레드 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 페이지를 통해 attachements을 볼 수 있도록하기 위해 설정하는 데 필요한 권한 struggeling하고 있습니다.

주요 폴더 m_attpath = 0777 스레드 폴더 자체도

그들이 물음표로 끝날 브라우저를 통해 파일을 보는 0644입니다 0644 파일을 것입니다. 브라우저가 404 경고를 표시하지 않습니다. ftp 프로그램에서 첨부 파일의 크기를 볼 수 있습니다. 뭔가 잘못되었지만 무엇을 찾을 수 없습니다. 아무도 이것으로 나를 도울 수 있습니까?

x

답변

0

m_attpath가 상수이면이 코드가 잘못되었습니다.

은이어야한다

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

는 "그들은 물음표로 끝"으로 무엇을 의미합니까?

+0

$는 오타입니다. "결국 물음표로 끝납니다."브라우저는 그림 자체 대신 물음표를 표시합니다. 그래서 그것은 404를 얻지 못하지만 그것은 읽을 수없는 것처럼 보입니다. – richardverbruggen

+0

브라우저를 통하지 않고 직접 파일을 열면 어떻게됩니까? 나는 당신이 ftp 프로그램에서 그것을 볼 수 있다고 언급했기 때문에 파일 크기가 좋아 보인다. 사용 권한 문제가 아니므로 사용 권한 문제가 아닌 것으로 보이고 브라우저를 통해 파일에 액세스 할 때 파일을 쓰는 PHP 경고 또는 403 오류 메시지가 표시됩니다. 솔직하게 나는 잃어 버렸다. 더 많은 코드를 게시 할 수 있습니까? 나는 $ c가 정말로 당신이 기대하는 것을 포함하고 있는지를 검증 할 것을 제안한다. 리눅스 시스템에서는 아무런 차이가 없어야하지만 바이너리 파일 btw에는 "wb +"를 사용해야합니다. –