2008-10-15 5 views
8

Windows Server 2003 엔터프라이즈 상자에서 PHP 5.2.6을 실행하고 있습니다. IIS는 익명 액세스를 거부하고 Windows 통합 인증을 사용하도록 설정됩니다.PHP에서 수정 된 파일에 대한 이상한 사용 권한 move_uploaded_file()

웹 양식에서 업로드 한 파일을 저장하기 위해 PHP 스크립트를 사용하고 있습니다. 파일을 임시 폴더에 업로드하고 스크립트는 웹 양식의 다른 변수에 따라 파일 이름과 경로를 만든 다음 _ _ 업로드 파일()을 사용하여 임시 파일을 최종 위치로 이동합니다. 모두 잘 작동합니다. 즉, 사람들은 파일을 업로드하여 그룹의 모든 사람들이 파일을 볼 수있게하고 파일이 스크립트로 정리되도록합니다.

제 문제는 최종 위치의 파일에 이상한 사용 권한이 있다는 것입니다. 임시 위치 또는 최종 위치에서 권한으로 끝나지 않습니다. 임시 위치와 최종 위치 모두 동일한 사용 권한을 갖습니다. 소유자 및 관리에 대한 모든 권한. 2 개의 특정 AD 보안 그룹에 대한 읽기 및 읽기/실행 최종 파일은 소유자 및 관리에 대한 모든 권한 만 제공됩니다. 따라서 관리자와 원래 업 로더는 파일을 보는 데 아무런 문제가 없지만 그룹에있는 다른 모든 사람들은 액세스하려고 할 때 "권한이 거부되었습니다"라는 메시지를받습니다.

모든 아이디어 나 제안을 부탁드립니다. 감사! http://us3.php.net/move_uploaded_file

은, 아래의 의견을 살펴보십시오 복사에 대한 플로리안의 의견()을주의 깊게 살펴 :

답변

4

이는 move_uploaded_file() 기능에 문제가 될 것으로 보인다.

는 인 move_uploaded_file에 PHP 페이지에서 해결) (문제?
http://us3.php.net/manual/en/function.copy.php

+0

이렇게했습니다. 감사! – user13414

+0

문제 없으니 기꺼이 도와 드리겠습니다. –

+0

move_uploaded_file()이이 검사를 구현하므로 copy()를 사용하는 경우 is_uploaded_file()이 임시 파일에서 true를 반환하는지 확인하는 것이 좋습니다. –

7

을 복사합니다 (주의 :이 나를 위해 일) : Windows 및 IIS, 당신에 PHP를 사용하는 사람들을 위해

php.ini의 "upload_tmp_dir"값을 웹 사이트 디렉토리가있는 디렉토리로 설정하고 그 디렉토리를 만든 다음 웹 사이트 디렉토리로 설정 한 것과 동일한 권한을 설정해야합니다. 그렇지 않으면 파일을 업로드 할 때 C : \ WINDOWS \ Temp로 이동 한 다음 웹 사이트 디렉토리로 이동하면 권한이 올바르게 설정되지 않습니다. ImageMagick의 convert 유틸리티 같은 것으로 파일을 조작하고 싶다면 문제가 발생할 것입니다.

관련 문제