언젠가부터 로컬환경에서 에디터를 통한 이미지업로드시 항상 에러가 났다. 그런데 정작 파일은 업로드디렉토리에 정상적으로 들어가 있다. 으잉?

뭐 서버쪽에서는 잘 돌아가니까 크게 신경을 안쓰다가 좀 찜찜해서 살펴봤다.


업로드시 에러가 나면 기본적으로는 일반 파일업로드와 마찬가지로 두가지를 중점으로 살펴본다.

1. 업로드 디렉토리의 권한 (data/editor: 707 또는 777)

2. 호스팅용량초과 여부 (관리자에서 캐시,캡챠,썸네일파일들을 삭제하고나서 업로드가 되면 거의 이 이유)


그러나 윈도의 로컬환경에서는 저 두가지 다 해당사항이 없다.

분명 php쪽 에러가 나서 처리가 안됐을 것이다는 짐작하에 이래저래 뒤적거려가며 찍어보다가 찾았다.

smarteditor2/photo_uploader/js/basic.js 에 .on('fileuploadfail', function (e, data) {}) 에서

data.errorThrown.message 찍어보니 'Unexpected token < in JSON at position 0' 이런게 찍힌다.

json데이터로 리턴받는다고 했는데 json형식이 아니었던것다. 그럴만한 이유는 역시나 에러가 나서 일반텍스트가 찍혔겠지.

다시 data.jqXHR.responseText 이걸 찍어봤더니만

<br />?<b>Warning</b>:  Unexpected character in input:  '\' (ASCII=92) state=1 in <b>www\plugin\editor\smarteditor2\photo_uploader\popup\php\UploadHandler.php</b> on line <b>298</b><br />?<br />?<b>Warning</b>:  Unexpected character in input:  '\' (ASCII=92) state=1 in <b>www\plugin\editor\smarteditor2\photo_uploader\popup\php\UploadHandler.php</b> on line <b>764</b><br />?<br />?<b>Warning</b>:  Unexpected character in input:  '\' (ASCII=92) state=1 in <b>www\plugin\editor\smarteditor2\photo_uploader\popup\php\UploadHandler.php</b> on line <b>788</b><br />?<br />?<b>Warning</b>:  Unexpected character in input:  '\' (ASCII=92) state=1 in <b>www\plugin\editor\smarteditor2\photo_uploader\popup\php\UploadHandler.php</b> on line <b>790</b><br />?

...

이런것들이 잔뜩 찍힌다.

UploadHandler.php 파일을 열어보니

$file = new \stdClass();

요런 녀석들이다.

응? 이거 네임스페이스 아닌가?

전에도 Browscap 때문에 문제가 됐었는데 php버전문제다.

네임스페이스는 php 5.3 이상에서 지원되므로 5.3미만에서는 저런 경고가 뜬다.


내 로컬환경이 워낙에 오래전부터 유지되어온 관계로 apmsetup 2009년도 버전인가 그럴거다. 아하하 -_-;

php버전차이를 극뽁하기 위해 xampp도 병행사용하긴 하는데 익숙하다보니 apmsetup을 주로 쓴다;


여튼. 그누보드5.2.0 기준으로..

smarteditor2/photo_uploader/popup/php/UploadHandler.php 파일을 UploadHandler52.php로 복사하고 52파일을 열어 \stdClass(), \Imagick(), \ImagickPixel, \imagick, \Imagick() 들을 찾아 앞에 \를 지워준다.


같은 위치의 index.php 파일을 열어서 require문을 바꿔준다.

변경전

    require('UploadHandler.php');

변경후

    if (version_compare(phpversion(), '5.3', '<')) // namespace는 5.3.0 이상부터 지원
        require('UploadHandler52.php');
    else
        require('UploadHandler.php');



사실.. 이거 눈에 걸린지는 일년쯤 된거 같은데.. 딱히 일하는데 지장도 없고 해서 신경안쓰고 있었다;

그래도 찜찜한거 하나 없애놔서 살짝 좀 유쾌상쾌통쾌~!


블로그 이미지

먼지손

,

가급적 일반 링크는 a태그를, 스크립트로 동작하는 기능은 button태그를 사용한다.

그러다보면 button 안에 img 태그를 사용하게 되는 일이 많은데 파이어폭스에서는 묘한 여백이 생겨있다.

분명 margin과 padding 모두 0으로 해뒀음에도..

그럴땐 파폭 전용 css를 추가해주면 된다고 한다.

button.cart::-moz-focus-inner {
    padding:0;
    border:0;
}

http://taegon.kim/archives/3548


아예 리셋해놓는게 좋겠다.

button::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
input[type="file"] > input[type="button"]::-moz-focus-inner
{padding:0; border:0;}

http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox


블로그 이미지

먼지손

,
블로그 이미지

먼지손

,