// Ajax 파일 다운로드
jQuery.download = function(url, data, method){
    // url
data를 입력받음
    if( url && data ){
        // data
  string 또는 array/object 를 파라미터로 받는다.
        data = typeof data == 'string' ? data : jQuery.param(data);
        //
파라미터를 form  input으로 만든다
.
        var inputs = '';
        jQuery.each(data.split('&'), function(){
            var pair = this.split('=');
            inputs+='<input type="hidden" name="'+ pair[0] +'" value="'+ pair[1] +'" />';
        });
        // request
를 보낸다
.
        jQuery('<form action="'+ url +'" method="'+ (method||'post') +'">'+inputs+'</form>')
        .appendTo('body').submit().remove();
    };
};

***
폼을 동적으로 그리고 submit한 후 폼을 remove한다.


실행예

$.download('testExcelDownload.do','find=commoncode','post' );

물런 data에 file명을 쓰는 현명한 행동을 하지 않길 바란다..


Vim, Vi 에디터에서 HTML 같은 텍스트 파일을 열어보면 각 행의 끝에 ^M 이런 이상한 기호가 붙어 있는 경우가 있습니다. 캐럿 기호 + 대문자 M으로 되어 있습니다. 이것은 개행문자 즉 줄바꿈 문자가 깨진 흔적입니다. 주로, 같은 파일 안에 "유닉스 개행문자" "도스 개행문자"가 섞여 있을 때 이런 현상이 발생합니다. 다음은, ^M 기호를 치환(바꾸기) 기능으로 지우는 방법입니다.

 

Vim 에서 Esc키를 한 번 눌러 명령어 모드로 나온 후, 다음의 정규식을 입력합니다. 복잡한 정규식은 아니고, 각행의 끝($)에 있는 ^M 기호를, 모두(g) 공백(//)으로 바꾸는(%s) 것입니다.

 

:%s/^M$//g

 

주의! 그런데 위의 정규식에서 빨간색으로 된 ^M 이라는 문자열을 직접 글자 그대로 타이핑하면 안됩니다. 반드시 키보드의 Ctrl+V 키와 Ctrl+M 키를 눌러서 간접적으로 입력해야 합니다. Ctrl키를 누른 상태에서 vm 이라는 2글자를 소문자로 연속으로 입력하면 됩니다.

 

그러면 이제 텍스트 파일의 모든 ^M 기호가 깨끗이 삭제되었을 것입니다. 파일은 유닉스 텍스트 Unix Text 로 변환됩니다.

 

다만, 위의 방법은 리눅스나 유닉스의 Vim, Vi 에디터에서만 되고, 윈도우용 VIM 이나 GVIM 에서는 잘 안됩니다. 윈도우용 VIM 에서는 Ctrl+V 키가 "붙여 넣기"키로 정의되어 있는 경우가 많기 때문입니다.

+ Recent posts