2010-05-11 4 views
0

생성자로 product_id와 $ _FILES 배열을 제외한 클래스를 작성하고 있습니다. 클래스는 이러한 변수를 저장하고이를 사용하여 product_id라는 새 디렉토리를 만들고 지정된 디렉토리에 임시 파일을 복사하려고 시도합니다. http://pastie.org/955454PHP 이미지 업로드 객체가 창에 디렉토리를 생성하지 않습니다

+0

mkdir은 무엇을 반환합니까? –

+0

ID가 어떻게 표시됩니까? 예 : '$ prod_id'? –

+0

$ prod_id, 예; 그리고 mkdir은 0을 반환합니다 – ThinkingInBits

답변

2

이것은 권한 문제 일 수 있습니다 : 내 수업도까지 (생성자에서 발생한다) 디렉토리 여기

을 만드는 등 점점되지 않는 몇 가지 이유를 들어

내 코드에 대한 링크입니다 . Windows 기반 서버라고합니까? 이 기계를 소유하고 계십니까? 전용 서버를 사용하고 있습니까? 공유 서버를 사용하고 있습니까?

이 질문에 대한 답변은 실제로 제공되는 정보에 따라 달라집니다. 컴퓨터를 소유하고 있다면 하드 디스크의 쓰기 가능한 디렉토리로 이동하여 기록 할 권한을 열 수 있습니다. 그것이 헌신적 인 것이라면 아마 파일 구조에 접근하고 그 권한 설정을 변경하는 것이 합리적으로 쉬운 방법 일 것입니다. 그것이 공유되면, 똑같은.

+0

나는 이것을 시도해 보겠습니다. localhost에 있습니다. – ThinkingInBits

+0

readonly의 선택을 취소했지만, 폴더 속성을 다시 열었을 때 되돌릴 수있었습니다. – ThinkingInBits

+0

관리자 계정의 속성을 변경해보십시오. 귀하의 계정이 이미 "관리 계정"토큰으로 간주되는 경우 (Windows에서 반드시 무제한 액세스를 의미하는 것은 아닙니다),이 페이지의 단계를 시도하십시오 : http://www.howtogeek.com/howto/windows- 비스타/사용 - 숨김 - 관리자 - 계정 - 온 - 윈도우 - 비스타 / – dclowd9901

0

생성자의 $ this-> 디렉토리에서 절대 경로를 사용하고있는 것처럼 보입니다. 즉, C : \ images \ upload (또는 실행중인 모든 드라이브)로 처리됩니다. 에서 사이트). 이는 URI 유형 경로로 의미하는 경우에, 당신은 경로를 웹 루트를 추가해야합니다 :

$this->directory = $_SERVER['DOCUMENT_ROOT'] . '/images/upload/' . $this->prod_id 

당신은 또한에서 mkdir()의 반환하기 것을 확인 할 수 있습니다. 실패하면 FALSE이며, 그 후에는 error_get_last() (PHP> = 5.2)을 검사하여 실패 이유를 정확히 확인할 수 있습니다.

} else { 
    $ret = mkdir($this->directory, 0755, true); 
    if ($ret === FALSE) { 
     die("mkdir() failed with: " . error_get_last()); 
    } 
} 
관련 문제