웹마스터 팁

안녕하세요!

오랜만에 웹마스터팁 게시판에 글쓰네요^^

XE로 프로젝트 진행하던 중 XE의 파일 업로드기능이 필요하여 XE의 file모듈을 이용하기로 결정했었는데요^^

.....쉽게 생각했었는데... 파일 업로드를 할수 없더라구요...ㅠㅠ (msg_not_permitted_create 에러 뿜뿜...ㅠ)

더더욱이 로그에도 제대로 찍히지 않아서...ㅠㅠ (저는 XE debug기능 보다는 apache 로그를 위주로 작업하는지라...ㅠ)

아무리 찾아도 이렇다할만한 해결책이 없어서.... 디버깅하던 중....

제가 알아낸 방법에 대해서 공유하고자 이렇게 글을 올립니다^^

 

우선 insertFile 함수를 보면,

function insertFile($file_info, $module_srl, $upload_target_srl, $download_count = 0, $manual_insert = false)

이렇게 되어있죠^^

 

기본적으로 $manual_insert 값에 TRUE를 주게 되면 수동으로 파일업로드가 가능해집니다...

 

여하튼.... 함수를 살펴보게 되면, 여러가지 전처리를 해주게 되고, xe가 설치된 디렉토리의 files디렉토리에 해당 서브 디렉토리를 만들고 tmp파일을 복사해서 넣게 됩니다...

 

이 과정에서 디렉토리를 만드는 함수가 FileHandler::makeDir($path)죠^^

 

사실상 FileHandler::makeDir($path)에 보면... 별 내용은 없습니다... 단지 mkdir 명령어를 이용해 인자값으로 받은 $path변수에 지정된 디렉토리에 티렉토리를 만들고 권한을 주는 내용이죠....

 

// Create a directory
if(!FileHandler::makeDir($path)) return new BaseObject(-1,'msg_not_permitted_create'.$path);

 

그런데.... 안되다니.... (털썩...)

재밌는건 게시판의 파일첨부 기능은 정상적으로 동작됩니다 ㅠㅠ

 

여하튼 각설하고..... 

 

저는 $path 변수를 찍어보니 ./files/****/***/***/ 이라는 값을 인자로 넘기더군요....

 

음............. 혹시 디렉토리 경로를 제대로 못잡는것인가.... 싶어서 _XE_PATH_ 상수를 이용해 $path변수를 생성하는 부분에 넣어주었습니다...

 

$path = sprintf(_XE_PATH_."./files/attach/images/%s/%s", $module_srl,getNumberingPath($upload_target_srl,3));

 

_XE_PATH_ 상수는 서버 내에 XE가 설치된 디렉토리의 경로를 가지고 있죠....

 

예를 들어 XE가 설치된 디렉토리가 /var/www/html/ 이라면 _XE_PATH_ 상수에는 "/var/www/html/"값이 들어가게 되고,

위 소스를 해석하면 "/var/www/html/./files/attach/images/%s/%s"로 경로를 넘기게 됩니다.... 결국 절대경로값을 넘기는 거죠^^

 

결과는.... 정상작동이 됩니다^^

 

혹여 저또한 미래에는 기억못할수도 있고.... 에러로그에도 찍히지 않은 이 문제때문에 밤새실 분들을 위해 이렇게 기록삼아... 팁 게시판에 올려봅니다^^

제목 글쓴이 날짜
대부분 쉬운설치로 인해 홈페이지 빈 페이지가 뜨는 에러는.. CJM 2019.10.24
xe 기본회원가입품 연락처항목 공백&숫자 유효성검사 질문입니다. 해운거사2 2019.08.25
[주옥시리즈] 내글 모니터링, 작성글 앞으로 뺴기 [6] socialskyo 2013.10.18
회원가입품 연락처항목 공백잇을시 질문입니다. 해운거사2 2019.08.16
VSCODE에서 PRETTIER-PHP 사용하기 (중급자용) reactux 2019.07.29
관리자페이지의 회원목록에서 타회원들의 비밀번호 찾기 질문/답변 수정 가능하도록 하려면.. sejin7940 2019.07.03
XE 코어의 메일전송을 우리알림 모듈로 대체하는 방법 [30] file GG 2014.11.24
XE 1.5.1로 사이트 꾸미기 Part 2 [11] file 황비 2011.12.06
스케치북5 게시판 사용자정의에 색상 적용하기 file 아데나 2019.05.31
로그인 실패시 실패내역 쪽지와 메일 발송 되는걸 발송 안 되게 하려면.. sejin7940 2019.05.21
스크랩버튼 외부로 빼내기 [3] RainDrop+ 2011.01.04
1.11.3 업로드 패치 이후 업로드 오류 관련 우소푸 2019.04.21
게시판 목록에서 바로 첨부파일 다운로드하기 [6] file 요다빈치 2012.03.13
XE이전 작업순서 elancer 2019.03.28
무료이미지 다운 받을 수 있는 곳 elancer 2019.03.19
회원이 글 삭제하면 삭제하지 않고 글을 다른 게시판으로 보내기 [5] SCAC 2012.07.03
트윗버튼, 페어스북 좋아요 버튼, 카카오스토리 좋아요 버튼 태그 elancer 2019.03.11
XE용 CKEditor v4.9.2 (다크 스킨 수정) [4] file 큰돌♡ 2018.07.04
file 모듈 insertFile() manual_insert 시 디렉토리생성 에러 문제 해결 방법 onTrust 2019.01.02
모듈에서 무조건 JSON/XML 형식으로 출력하기 [1] Devel0per 2015.04.03