묻고답하기
게시판 이미지 파일 첨부문제
2016.05.04 09:04
게시판에 jpg 파일을 첨부하여 사용하고 있습니다.
문제가 되는 증상은 다음과 같습니다.
1.대문자 JPG파일을 업로드 한다.
2.본문삽입시 화면에 잘 표시된다.
3.게시판 목록의 섬네일로 보여주려고 하면 파일을 읽어오지 못한다.
4.같은 이미지를 소문자로 업로드하면 본문삽입/게시판 섬네일 모두 잘 읽어온다.
JPG와 jpg를 다른 파일로 구분하는 건 알겠는데...
xe자체적으로 섬네일 불러오는 함수에서 jpg파일만 불러오나요?
해당 문제를 해결하려면 어디 부분을 확인해야 하나요?
서버업체에 문의하니 소문자로 올리면 소문자로 불러와야 하고 대문자로 올리면 대문자로 불러와야 한다고 이야기 합니다.
현재 제 추측으로는 겟 섬네일 함수에서 대소문자 구분을 하지 않고 소문자로만 불러오다 보니까 파일이 있다고 인지를 못하는 것 같은데 ㅜㅜ;
답변 미리 감사합니다.
댓글 6
-
sejin7940
2016.05.04 09:53
-
CosignStudio
2016.05.04 10:12
반갑습니다 세진님 오랜만이네요.
우선 답변 감사합니다.
대문자 JPG이미지 파일 첨부시 섬네일 생성에만 문제가 있습니다. 본문에서 보는건 문제가 없습니다.
대문자 JPG 파일만 섬네일 생성에 문제가 있다면 최신 섬네일 함수가 아니라서 그런건가요? 현 상태에서 해결방법은 어떤것이 있을까요?
-
sejin7940
2016.05.04 10:18
XE 1.8.19 기준으로는 대문자 JPG 도 정상등록 및 썸네일 생성이 다 됩니다.
썸네일 생성함수가 document.item.php 에서 getThumbnail 함수에서
이미지인지 확인하는 함수는 if(preg_match("/\.(jpe?g|png|gif|bmp)$/i", $file->source_filename)) 이렇게 되어있기에
/i 옵션으로 대소문자 상관없이 검토하게 되어있고
썸네일을 생성하는 함수는
$output = FileHandler::createImageFile($source_file, $thumbnail_file, $width, $height, 'jpg', $thumbnail_type);
이런형태로 아예 jpg 소문자로 썸네일 이미지를 생성하게 되어있습니다.썸네일 호출하는 부분은
$thumbnail_file = sprintf('%s%dx%d.%s.jpg', $thumbnail_path, $width, $height, $thumbnail_type); 이렇게 되어있어서
앞서 소문자jpg 로 강제된걸 그대로 불러오죠.
즉, 현재 최신버전 소스로는 문제가 없을거예요
만약 안 되신다면 XE 버전에 따른 버그 일 수도 있고.. 아니면 현재 사용하는 소스상의 다른 이유일 수도 있겠죠 -
CosignStudio
2016.05.04 10:59
답변 감사합니다.
썸네일 함수의 소스는 동일한것으로 보입니다.
다른부분에서의 문제를 확인해 봐야 할 것 같습니다.
감사합니다.
-
토치송
2017.01.08 18:01
저도 지금 이 문제 때문에 클라이언트에게 질타를 받고 있는데요...
1.8.9 에는 잘 되던게 그 이후로 가면 대문자 JPG 확장자 파일들을 못불러옵니다.
해결방법이 있을까요?
-
축복된삶
2019.06.18 21:48
저는 호주에서 새순교회 선교팀 홈페이지 http://mission.saesoon.org/msxe/ 를 관리하고 있는 담당자입니다.
저는 위에 계신 분들과 같이 전문가는 아니지만 제로보드 시절부터 지금까지 XE를 즐겨 사용하고 있는 사용자 입니다.
얼마전 호스팅 회사에서 PHP 버전을 7.2.7로 업그레이드해서 홈페이지 Xe core v1.7.3이 완전히 깨어졌습니다.
그래서 최신 버전 v1.11.5로 업그레이드를 하였는데 홈 첫페이지의 Content 위젯의 Image does not exist 메시지가
떠서 이를 해결하려고 호스팅 회사와 웹의 각종 정보를 다 뒤져봐도 해결할 방법이 없었습니다.
그래서 다시 다운사이징하여 XE core v1.11.2로 Upgrade해도 마찬가지 였습니다.
이때 이 Q&A 방을 발견하고 게시판의 이미지 첨부 파일을 확인하니 이미지가 뜨지 않는 이미지 파일 확장자가 대문자 JPG로 확인 되었습니다.
그래서 제가 시도해본 것은 대문자 JPG를 삭제하고 소문자 jpg 이미지를 사용해보니 Image does not exist 메시지가 없어 졌습니다. 이를 확인하고 저도 이 문제를 확인하기 위해서 호스팅 회사에 GD Library 문제일 것 같아 문의를 했으나 답변은 제쪽 문제라는 것이 었습니다.
여러 위젯과 게시판을 확인해 보았는데 이 문제가 위젯과 게시판의 썸네일에 동일하게 대문자 이미지 JPG로 된것만 Image does not exist 메시지가 떳습니다.
그러던 중 결론적으로 위젯 이미지 없다는 문제를 해결했습니다.
우습게도 Content 위젯 설정에서
이미지 폭을 100 -> 110으로 조정하고 이미지 높이를 75-> 80으로 조정 했는데 (에러가 난 더 큰 수치도 마찬가지로 시도해봄) Image does not exist 메시지가 없어 졌습니다.
저는 전문가가 아니라 이에대한 정확한 원인을 밝혀 낼 수 없지만 아마도
여기에 계시는 전문가분들께서는 이제는 정확히 문제점을 찾으실 수 있지 않을까 생각합니다.
늘 XE를 만들고 이끌어 나가시는 신실하신 분들께 감사드리고 더욱 더 잘 사용하겠습니다.
감사드립니다.
이미지를 조정하여 에러가 고쳐진 위젯 모습입니다. 참조로 올려 드립니다.
현재 최신 버전의 썸네일 생성함수에는,
( 썸네일 추출이나 생성이 같은 함수에서 이뤄집니다. document.item.php 의 getThumbnail 함수에서 )
원본파일 확장자가 대문자이더라도 해당 대문자 확장자를 이미지파일로 인식하고
그 이미지를 기반으로 썸네일을 생성하는데
썸네일은 무조건 소문자 jpg 로 생성되거든요 ( 원본이 gif 나 png 여도 무조건 jpg 로 썸네일이 생성되죠)
따라서 말씀하신게 썸네일이 맞으시면... 썸네일은 대문자 JPG 로 생성되는 경우가 없는 걸로 알고 있습니다