웹마스터 팁

안녕하세요!

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

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"로 경로를 넘기게 됩니다.... 결국 절대경로값을 넘기는 거죠^^

 

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

 

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

제목 글쓴이 날짜
EXIF 메타정보 필요하신 분 있으시면 forest535 2018.04.09
게시판 본문읽기에서 컨텐츠 이미지와 텍스트 분리하여 출력하기 forest535 2018.04.09
관리권한 없이도 특정그룹에게 비밀글 열람 및 댓글작성 권한 부여하는 방법 ( 부운영자등을 위해) sejin7940 2018.04.26
[PHP] 이름 및 연락처 마스킹 처리 [1] ppumweb 2018.05.21
단축url API 사용하시는 분들... 미스터강 2018.06.01
게시판글 엑셀 파일 보내기 php7용 file 황금날개 2018.06.05
도메인 변경 또는 설치 폴더 변경시 이미지 주소변경하기 file 해피정닷컴 2018.06.08
XE용 CKEditor v4.9.2 (다크 스킨 수정) [4] file 큰돌♡ 2018.07.04
DB를 손쉽게 관리 [1] EISOFT 2018.07.15
Code-Highlighter 3.0.83 가로 스크롤바를 어디론가 보내 버리고 싶으신 분. 달빛늑대 2018.07.16
Google 스프레드시트에서 구글 번역으로 XE 다국어 내용 만들기(Lang.xml 용도) file 달빛늑대 2018.07.17
act로 다른 페이지 보여주기 [1] 이온디 2018.07.25
다른 서버 간 서브도메인 쿠키 공유 에이트 2018.08.04
썸네일 방식으로 이미지 원본 주소 가져오기 에이트 2018.08.22
PHP 뮤텍스 락 설치법(memcached 활용) [1] 에이트 2018.09.03
PHP 뮤텍스 락 설치법(redis 활용) 에이트 2018.09.11
무료 psd, html 탬플릿, 아이콘 사이트공유합니다. 허허길드짱 2018.11.27
file 모듈 insertFile() manual_insert 시 디렉토리생성 에러 문제 해결 방법 onTrust 2019.01.02
트윗버튼, 페어스북 좋아요 버튼, 카카오스토리 좋아요 버튼 태그 elancer 2019.03.11
무료이미지 다운 받을 수 있는 곳 elancer 2019.03.19