웹마스터 팁

안녕하세요!

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

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

 

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

 

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

제목 글쓴이 날짜
file 모듈 insertFile() manual_insert 시 디렉토리생성 에러 문제 해결 방법 onTrust 2019.01.02
모듈에서 무조건 JSON/XML 형식으로 출력하기 [1] Devel0per 2015.04.03
새글/업데이트/이미지/동영상/첨부파일 아이콘 없애기 [18] file 老姜君 2008.11.21
무료 psd, html 탬플릿, 아이콘 사이트공유합니다. 허허길드짱 2018.11.27
act로 다른 페이지 보여주기 [1] 이온디 2018.07.25
단축url API 사용하시는 분들... 미스터강 2018.06.01
확장변수값 계산하여 게시판 리스트에 출력하기(총계 게시판) [1] file klaist 2009.11.30
PHP 뮤텍스 락 설치법(memcached 활용) [1] 에이트 2018.09.03
PHP 뮤텍스 락 설치법(redis 활용) 에이트 2018.09.11
위젯 가운데 정렬 하는법 [3] 불금 2015.07.05
요즘 제가 jquery 웹앱 솔루션을 개발했습니다. [2] file 안드류KIM 2018.04.03
썸네일 방식으로 이미지 원본 주소 가져오기 에이트 2018.08.22
다른 서버 간 서브도메인 쿠키 공유 에이트 2018.08.04
DB를 손쉽게 관리 [1] EISOFT 2018.07.15
CKEditor 이용시 몇가지 유용한 설정 [11] prologos 2015.05.02
Google 스프레드시트에서 구글 번역으로 XE 다국어 내용 만들기(Lang.xml 용도) file 달빛늑대 2018.07.17
Code-Highlighter 3.0.83 가로 스크롤바를 어디론가 보내 버리고 싶으신 분. 달빛늑대 2018.07.16
[수정]알림센터 Lite에 메일발송 기능을 추가하기 [11] file 매실茶 2013.11.25
고정도메인 host 변경하기 해피정닷컴 2016.03.11
도메인 변경 또는 설치 폴더 변경시 이미지 주소변경하기 file 해피정닷컴 2018.06.08