2009-10-07 4 views
0

젠드 프레임 워크 메커니즘으로 업로드 된 파일을 읽고 다시 게시하려고합니다. 젠드 프레임 워크 : 이미 존재하는 파일에 액세스 할 수 없습니다.

파일

원하는 위치에 정확하게 업로드하고 내가

su www-data 

로하고, LS와 고양이 후 확인 것처럼, 웹 사용자가 그것을 읽고 적절하게 수정할 수 있습니다.

문제는 컨트롤러 내부에 내가하려고 때 다음 $ 파일 이름 문자열이 있지만,

if(!file_exists($fileName)) { 
die("File ($fileName) wasnt set or it didnt exist"); 
} 

난 항상 (...) 죽을 무엇입니까 내가 표시 할 때이 위치는 내가 할 수 있어요 항상 (앞에서 언급했듯이) 명령 행에서 읽는다.

LS 출력 :

$ ls -lah 
total 112K 
drwxr-xr-x 2 www-data www-data 4.0K 2009-10-07 18:21 . 
drwxr-xr-x 3 www-data www-data 4.0K 2009-10-07 13:57 .. 
-rw-r--r-- 1 www-data www-data 70K 2009-10-07 17:33 Eclipse_Icon_by_TZR_observer.png 
-rw-r--r-- 1 www-data www-data 27K 2009-10-07 18:24 eclipse_logo2.png 

합계 출력 : 그것은 나에게 일어난 일이 아니다 그래서

stat() [function.stat]: stat failed for .../eclipse_logo2.png 

는 나는 "30 일 동안 시도"사이트에 매우 비슷한 질문을 보았다 ...

아이디어가 있으십니까?

+0

1. ls -l file.ext 출력 또는 stat ($ fileName)을 게시 할 수 있습니까? 2. "try for 30 days" – eveliotc

+0

에 비슷한 질문을 게시 할 수 있습니까? 질문 본문에 추가했습니다. –

+0

두 번째 질문 : 아니요, "등록 첫 번째 포럼"이고 실제로 등록하고 싶지 않습니다. ... –

답변

0

PHP 측에서 만든 파일 소유자가 Apache (그룹 : www-data, httpd, www 또는 이와 비슷한 것)이기 때문에 새로 만든 파일은 chmod이어야합니다. 그래서 다음에 PHP는 www-data가 그것을 소유하고 잘못된 권한을 가지고 있기 때문에 파일에 접근 할 수 없습니다.

Here's how you create new files so that you can access them later. 
<?php 
$path = '/path/to/new/file'; 
touch($path) 
chmod($path, 0777); 
// TRY to change group, this usually fails 
@chgrp($path, filegroup(__FILE__)); 
// TRY to change owner, this usually fails 
@chown($path, fileowner(__FILE__)); 
+0

감사합니다. 이것은 사용 권한 문제임이 분명합니다. 시도해보고 최대한 빨리 알려 드리겠습니다 ... –

+0

사용 권한 문제가 있었으므로 올바른 것으로 간주됩니다. 그 후 진짜 문제는 무엇입니까? postgresql에서 결과를 잘라내는 것을 잊어 버렸습니다. 파일 이름뿐 아니라 많은 수의 후행 공백도 입력으로 가지고 있습니다. 따라서 실제 수정은 트림 (...) 호출이었습니다. –