묻고답하기
모바일에서 첨부파일 받을때 문제점에 대해 문의드립니다.
2013.04.03 11:23
안녕하세요~
XE 1.5버젼을 쓰고 있구요~
모바일 버전에서 첨부파일을 받을때 문제점이 있어서 문의드립니다.
참고로 안드로이드 4.2 사용중입니다.
jpg 파일을 받을때 파일의 확장자가 대문자일경우에
"콘텐츠 정보 - 지원하지 않는 파일 형식입니다. 다운로드하시겠습니까?"
라고 나오네요~ 물론 이렇게만 나오고 문제가 없으면 괜찮지만
다운받은다음에 노티바에서 파일열기를 했을때 열수없는 파일이라고 뜨고 파일이 안열립니다.
물로 갤러리로 가서 확인하면 나옵니다.
서버쪽에 mime.types 파일도 수정해봤지만 안됩니다.
정보 공유 부탁드립니다~ ^^
댓글 4
-
HappyDrim
2013.04.03 17:13
-
HappyDrim
2013.04.03 18:11
첨부파일이 한글일때 pathinfo함수에 문제가 약간 있군요~
function filePath($filePath) {
$fileParts = pathinfo($filePath);
if (($s = strrpos($filePath, '/')) !== false) $s++;
if (($e = strrpos($filePath, '.') - $s) !== strlen($fileParts['filename'])) {
$fileParts['filename'] = substr($filePath, $s, $e);
$fileParts['basename'] = substr($filePath, $s);
}
return $fileParts;
}이 함수를 선언해주시고
$tmp_file_info = pathinfo($file_info['name']); -> $tmp_file_info = filePath($file_info['name']);
로 바꿔주세요~ ^^
댓글 수정이 안되서 추가적으로 남깁니다.
-
HappyDrim
2013.04.03 18:18
참고로 filePath함수를 fileController class 밖에다 선언해야 적용이 되더라구요~
왜그런지는 아직 php 초보라서 모르겠네요~
아시는분은 답변 부탁드립니다~ ^^
-
HappyDrim
2013.04.03 18:47
$this->filePath 로 하면 class 내부에 넣어도 되네요~ ㅋ
오늘 많이 알고 갑니다~ ㅋ
혼자서 질문하고 대답하고~ ㅋ
파일 업로드할때 확장자가 대문자인 경우 자동으로 소문자로 변경하도록 해서 해결했습니다.
같이 공유하고자 올려봅니다.
수정할 파일 : xe\modules\file\file.controller.php
수정할 함수 : function insertFile() (XE 1.5 기준 523라인입니다.)
추가할 내용 :
$tmp_file_info = pathinfo($file_info['name']);
$change_filename = $tmp_file_info['filename'];
$change_ext = $tmp_file_info['extension'];
$file_info['name'] = $change_filename.".".strtolower($change_ext);
이렇게 하시면 됩니다~ ^^
도움이 되었으면 좋겠네요~