묻고답하기
이미지프로세스 모듈 이미지용량 문제
2014.03.14 09:35
요즘 스마트폰의 카메라가 고해상도이다보니 사진의 용량이 점점 커지고 있습니다.
웹용량의 한계때문에 원본사진 그대로 업로드는 불가능한 상태인데요.
그래서 이미지프로세스 모듈을 많이 사용하실 겁니다. 저도 사용하고 있는데요.
근데 최근 발견한 문제인데. 이미지프로세스 모듈에서 처리할 수 있는 사진의 용량이 한계가 있는 것 같습니다.
2.5M 정도의 사진을 업로드 하였지만 이미지프로세스모듈에서 처리하지 못하고 에러를 발생합니다.
위와 같이 에러 팝업을 띄우고 원본 그대로 업로드가 되어 버립니다.
혹시 이 용량의 제한을 풀 수 있는 방법이 있을까요 ?
이미지프로세스를 사용하지 않으면 호스팅에서 제한한 10M의 파일까지도 올라갑니다.
댓글 12
-
마이웹
2014.03.14 11:01
-
몽실아빠
2014.03.14 11:02
네. 답변 감사합니다. 호스팅을 이용하고 있어서 정책상 128M 까지 설정 가능하다고 하네요 ㅜㅡ
-
마이웹
2014.03.14 11:07
아마 128M정도면 가능할수도 있을겁니다. ^^;
음... 그 메모리 제한을 늘인다고 해서 웹서버에 영향이 크지 않는다면 충분히 늘여도 될것 같은데...
웹호스팅 업체의 정책을 수정할 필요도...
-
몽실아빠
2014.03.14 11:12
기존에 120M로 제가 임의로 사용중이었는데 문제가 되어서 이번기회에 512M로 설정해 버렸습니다 ㅋ
-
몽실아빠
2014.03.14 11:09
.htaccess 파일에서 해결 보았습니다. 감사합니다.
-
마이웹
2014.03.14 11:13
오~ .htaccess 그런방법이 있었군요. 저도 하나 배웠네요 ^^
-
카르마
2014.03.14 13:47
이것도 업데이트를 한번 해야할 때가 되었나봅니다.
개발당시 사진크기가 10M미만이어서 32비트는 64M, 64bit에서는 128M로 설정해서 사용했었는데 요즘 디카 성능이 많이 좋아졌네요.
이미지화일 하나에 15M가 넘어가네요...끙~~
.htaccess로 해결하셨다니 다행이네요.
./modules/imageprocess/imageprocess.mode.php에 보시면
function check_memory_limit() { if (PHP_INT_MAX == '2147483647' && (substr(ini_get('memory_limit'), 0, -1) < '64')) { // 32bit PHP @ini_set('memory_limit', '64M'); return true; } else if (PHP_INT_MAX == '9223372036854775807' && (substr(ini_get('memory_limit'), 0, -1) < '512')) { // 64bit PHP @ini_set('memory_limit', '128M'); return true; } return false; }
부분이 있습니다.
이걸
function check_memory_limit() { if (PHP_INT_MAX == '2147483647' && (substr(ini_get('memory_limit'), 0, -1) < '64')) { // 32bit PHP @ini_set('memory_limit', '128M'); return true; } else if (PHP_INT_MAX == '9223372036854775807' && (substr(ini_get('memory_limit'), 0, -1) < '512')) { // 64bit PHP @ini_set('memory_limit', '512M'); return true; } return false; }
로 수정해주시면 될겁니다.
나중에 시간나는데로 업데이트해서 올리겠습니다.
.htaccess를 사용하면 홈페이지 전체에 메모리가 늘어나지만
수정하는 경우 프로세싱할때만 잠깐 메모리를 늘려서 사용하는 방법이니까 딴지걸 일은 없을겁니다.
-
몽실아빠
2014.03.14 13:49
아이고 감사합니다. 바로 적용하겠습니다. 정말 소중한 모듈 잘 쓰고 있습니다.
-
카르마
2014.03.14 13:52
급하게 온라인으로 작성하다보니 한가지 빠졌네요.
function check_memory_limit() { if (PHP_INT_MAX == '2147483647' && (substr(ini_get('memory_limit'), 0, -1) < '128')) { // 32bit PHP @ini_set('memory_limit', '128M'); return true; } else if (PHP_INT_MAX == '9223372036854775807' && (substr(ini_get('memory_limit'), 0, -1) < '512')) { // 64bit PHP @ini_set('memory_limit', '512M'); return true; } return false; }
가 맞는 것습니다....
온라인에서 바로 쓰는 관계로 테스트는 못해봤습니다. 지송.~~
-
몽실아빠
2014.03.14 13:56
감사합니다. 요 소스로 수정할게요.
-
jambox
2014.03.15 11:40
XE 필수모듈인 이미지프로세스 정말 잘 쓰고 있습니다. 메모리 부분을 해결해 주셔서 정말 감사드려요!
-
몽실아빠
2014.03.14 13:50
아까 고민할때 저기를 건드려볼까 하고 생각만 했네요 ㅋㅋ
GD를 이용한 이미지처리에 필요한 메모리용량의 제한에 걸린듯 합니다.
통상은 php.ini 에서 memory_limit = 512M 정도로 하신후 아파치 재시작 하시면 해결되는것으로 압니다.