2011-08-16 14 views
0

나는 서버에 파일 업로드를위한 스크립트를 PHP로 작성하고있다. 그리고 심지어 폴더와 모든 권한 '을 체크 한move_uploaded_file() not working

Warning: move_uploaded_file(uploaded_images/Mordent.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied 


Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpOWVz7o' to 'uploaded_images/Mordent.jpg' 

.. 코드 ..

$target_path = "uploaded_images/"; 
$target_path = $target_path . basename($_FILES['image']['name']); 
if(move_uploaded_file($_FILES['image']['tmp_name'], $target_path)) { 

    echo "The file ". basename($_FILES['image']['name']). 
     " has been uploaded"; 
    } else{ 
    echo "There was an error uploading the file, please try again!"; 
} 

을 따르고 그러나 함수 인 move_uploaded_file()는 작동하지 않으며 다음과 같은 오류를 제공 php.ini의 안전 모드가 꺼져 있습니다.

도와주세요. 긴급하게 처리해야합니다.

답변

3

여기서 상대 경로 이름 (uploaded_images/Mordent.jpg)을 사용하지 마십시오. 상대 경로를 절대 경로로 바꾸기 위해 PHP의 작업 디렉토리가 무엇인지는 항상 명확하지 않습니다.

당신이 이미지를 이동하려는 디렉토리와 같은 $target_path를 정의 스크립트와 같은 디렉토리에있는 경우 : __DIR__ 부분은 디렉토리에 당신에게 당신의 현재 스크립트를 절대 경로를 제공

$target_path = __DIR__ . '/uploaded_images/'; 

에있는 경우, "상대적인"부분을 추가합니다.

+0

이 답변에는 이전에'dirname (__ FILE __)'이 사용되었습니다. PHP 5.3부터, 더 짧은'__DIR__'이 가능하며 똑같은 것입니다. –

1

귀하의 코드는 완벽하게 잘 ... 당신이 읽기의 모든 권한에 대해 업로드 된 파일을 0777처럼

를 이동하는 디렉토리의 권한을 변경하고 수동으로 할 수 작성하거나 PHP를 통해 변경