하위 폴더에 대한 권한이 거부되었습니다.
P粉334721359
P粉334721359 2024-03-27 15:08:16
0
1
328

컨텍스트

  • PHP 5.6
  • IIS
  • 윈도우 11

질문

특정 폴더에 파일을 쓰려고 하는데 permission returned 오류가 발생합니다. 그래서 권한을 확인했는데 모든 것이 괜찮아 보였습니다. 개발환경이기 때문에 모든 파일을 쓰는 "root" 폴더에 대한 권한을 "Everyone can do everything"으로 변경하기로 했습니다. 아래의 모든 권한을 교체해 보았습니다. 상속된 권한을 제거하려고 합니다. 아무것도 할 수 없습니다.

그런 다음 "루트" 폴더에 파일을 작성해 보았습니다. 효과가 있었습니다. 하위 폴더에서는 작동했습니다. 하위 폴더에. 효율적인. 하위 폴더 체인에는 작동하지 않는 지점이 있지만 실제 하위 폴더 앞에 있습니다.

충돌 당시의 경로 계층 구조입니다.

으아악

Class weecommonIOFile는 내가 만들었지만 다른 곳에서도 사용할 수 있습니다.

제가 받은 정확한 오류 메시지는 다음과 같습니다.

fopen(DRIVE:/BASE_PATH/files/-/mod/com.ci.company/site/00.jpg):无法打开流:权限被拒绝

100퍼센트 명확함: "루트" 폴더는 DRIVE:/BASE_PATH/files/

편집 #1

다음은 File类的write 메소드의 구현입니다.

$f = new \wee\common\IO\File();
$f->write("DRIVE:/BASE_PATH/files/-/00.jpg", "hello"); // WORKS
$f->write("DRIVE:/BASE_PATH/files/-/mod/00.jpg", "hello"); // WORKS
$f->write("DRIVE:/BASE_PATH/files/-/mod/com.ci.company/00.jpg", "hello"); // WORKS
$pathLength = strlen("DRIVE:/BASE_PATH/files/-/mod/com.ci.company/site/00.jpg"); // Real path length is 85
$f->write("DRIVE:/BASE_PATH/files/-/mod/com.ci.company/site/00.jpg", "hello"); // FAILS
$f->write("DRIVE:/BASE_PATH/files/-/mod/com.ci.company/site/WorkersManager/00.jpg", "hello");
$f->write("DRIVE:/BASE_PATH/files/-/mod/com.ci.company/site/WorkersManager/workers/00.jpg", "hello");

P粉334721359
P粉334721359

모든 응답(1)
P粉819533564

이 문제는 PHP 5.6.26에서 발생합니다. 이 문제는 PHP 5.6.40에서 해결되었습니다.

원래 권한으로 재설정했는데 모든 것이 정상입니다!

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿