From 0ecda6d6823fb169233c9191ba00c88e429ae26b Mon Sep 17 00:00:00 2001 From: zero Date: Fri, 13 Apr 2007 11:06:36 +0000 Subject: [PATCH] git-svn-id: http://xe-core.googlecode.com/svn/trunk@1131 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/editor/tpl/editor.html | 6 +- modules/editor/tpl/images/SWFUpload.swf | Bin 0 -> 1954 bytes modules/editor/tpl/js/uploader.js | 76 ++++++++++++++++-------- modules/file/file.controller.php | 4 +- 4 files changed, 56 insertions(+), 30 deletions(-) create mode 100644 modules/editor/tpl/images/SWFUpload.swf diff --git a/modules/editor/tpl/editor.html b/modules/editor/tpl/editor.html index 1ba20a840..2e80d4233 100644 --- a/modules/editor/tpl/editor.html +++ b/modules/editor/tpl/editor.html @@ -97,13 +97,13 @@
- @@ -121,10 +121,10 @@ diff --git a/modules/editor/tpl/images/SWFUpload.swf b/modules/editor/tpl/images/SWFUpload.swf new file mode 100644 index 0000000000000000000000000000000000000000..c423737a53f2fbea1697944827cb4e7e3923c74a GIT binary patch literal 1954 zcmV;T2VM9>S5pXy761Tv+SOP~bKBMxJ^(=pdeO3^ly$5mlGDVI>2*$box$=0sa*={5;C6;uopn;bGCPd|}r`xLWZW zs|~x+@V(XWS*_J{eY?6^{&edTrr<2|w|TOEv2J_@s0&gT5?$!%9@bs|$abM{^tq@+ zV7spWOjNfVS41aG5yD~M`-AMf2rGfpj2!f8w<2FTYuL}7Myo+;q4Qe-vbQp;ss_n& zwpS5u4xJuhMoN%(Y}c<36|s%qXkzDLi0DZW_`wkV)0Sw7YM-DO`1L@9VIP}y2l}YF zc6hvp;sH10zZ}^?l<@CB`6P@)142=01x|D#LCgCM+ws74Q09pMd{3sR{HR7=xT0=H z0xE%^AJkH@#Cmbl_u>rt5<bLgyuoBg?PlXVo5x&2vH4} z)TCN+orV*wLKI+V4x0L26!b$Lk35)dAEc)vFO<8kuf6(FR zniO+mfpv|=_5`xVY2`B08-;FrR(my8BY{QA+E8WL8JjHinn*Dk>OF>i@=mO$CaLKw z@G{jN14A>%%yHHovkH=7Dux*|CKO{LW=tx^WXzaSjH#G0tr*iWV@5G%Vn#+WGBM+t zVqA+Evx+erGp;Mf^_VfI7;`aWUNPol#)4ujAOkUaWt_GT^Lxz8G9ceCW!na+-muWb zd=;sigr}j6>!dqa?nVB-Rw{Jcy^hoySFl?`YWWIww~%`C3U)t0>a8o-y^YlEE7-k* z)XKNDn*gp8Htw+O-MB_~t@afEj;F}id+ckKb$-a-_hZd9rMWgz^PbYYH&XMy(!4)X zbDo<&vf61m_v815bTc!@V{G%o!vW~rh`{{1$11M{{ih; zmB%{&7`pjkDfUB=r?O-(ll(dRdSFRU52(-Fd6d$m>*GfgRowKf4HBrP%|p+DH3TVptz@t60F) zzdTDS@+Xke9Q~tIS}hENVZQ@9|K@1AA^7B$%Gy_g1xCv_7p;MHQSYpXQ{CJ(E>{k| zy9(V*7LVBL%tc;jF6Z@)(+sU5Sa+R{h;XdTGsAp8fD6IPj95#PX{4F?B!D+hZ(ve1 zt7QPG<0xv%lYNQHoEq98HvWw_Q97)QD%r4J-|9>IFObx5FzxMg)5gX>yQ8>p?&c{S z^T~OR{`EhkvwV6R=PvIB62zmENQClc2nII}{0Q$lzgBr(AC~7Pv?qCiKEK4*M?|OM zxqW)Gx2S>&s%{I#i{SkG<=`BO!pi9@RMaumD_$V@>hPsTVjVY7xhbfWv61fV80jLn zDYCSYiuZ~IHcc66OKy#L<}l*@c&kJjzlR>CTphPdJ-b4@K+O&V{h+fzjS=|6R@lKh z%#I#zWgc!jmvM=WuP-6>M2rB86bMx z$~{yOZ1pV^AF4zqJ5|K|Cut0&wU>O0vvXVWNvR`f}55Llt z;6~@#+H=U@Mou;4H8c$ckk5dcdIo%tp8>Uz&w$BO(pl!u8kxU1hMD27fQf3~BVgyD zMLkE^LA})wUKE0V^f}a8UIpxC(>>{bbhz-%;5F_4=glB>LoQ(P)nu&uYBGL0Pm@Mp z28Ki8aR<~~T!z;<0#m*tEGAp_qZ33md5LUj@-vYTXvh!2kdN literal 0 HcmV?d00001 diff --git a/modules/editor/tpl/js/uploader.js b/modules/editor/tpl/js/uploader.js index bcff59dae..820d62731 100755 --- a/modules/editor/tpl/js/uploader.js +++ b/modules/editor/tpl/js/uploader.js @@ -5,6 +5,12 @@ **/ var uploading_file = false; var uploaded_files = new Array(); +var uploader_setting = { + "allowed_filesize" : 30720, + "allowed_filetypes" : "*.*", + "allowed_filetypes_description" : "All files..." +} + // 업로드를 하기 위한 준비 시작 function editor_upload_init(upload_target_srl) { @@ -13,21 +19,35 @@ function editor_upload_init(upload_target_srl) { // upload_target_srl에 해당하는 form의 action을 iframe으로 변경 function editor_upload_form_set(upload_target_srl) { - // input type=file의 위치 및 설정 변경 - var uploader = xGetElementById("file_uploader_"+upload_target_srl); + try { + document.execCommand('BackgroundImageCache',false,true); + } catch(e) { } + + // SWFUploader load + var uploader_name = "swf_uploader_"+upload_target_srl; + var embed_html = ""; + var flashVars = 'allowedFiletypesDescription='+uploader_setting["allowed_filetypes_description"]+'&autoUpload=true&allowedFiletypes='+uploader_setting["allowed_filetypes"]+'&maximumFilesize='+uploader_setting["allowed_filesize"]+'&uploadQueueCompleteCallback=editor_display_uploaded_file&uploadScript='+escape('../../../../?act=procFileUpload&upload_target_srl='+upload_target_srl+'&PHPSESSID='+xGetCookie(zbxe_session_name)); + + if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length) { + embed_html = ''; + } else { + embed_html = ''; + } if(xIE4Up) { - xLeft(uploader, -40); - xTop(uploader, -85); - uploader.style.filter = "alpha(opacity=0)"; + window.document.body.insertAdjacentHTML("afterEnd", "
"+embed_html+"
"); } else { - xLeft(uploader, -15); - xTop(uploader, -85); - uploader.style.opacity = 0; + var dummy = xCreateElement("div"); + dummy.style.width = "1px"; + dummy.style.height = "1px"; + dummy.style.position="absolute"; + dummy.style.top="0px"; + dummy.style.left="0px"; + xInnerHtml(dummy, embed_html); + window.document.body.appendChild(dummy); } - uploader.style.display = "block"; - // 업로드용 iframe을 생성 + // 임시 iframe을 생성 if(!xGetElementById('tmp_upload_iframe')) { if(xIE4Up) { window.document.body.insertAdjacentHTML("afterEnd", ""); @@ -47,6 +67,7 @@ function editor_upload_form_set(upload_target_srl) { // form의 action 을 변경 var field_obj = xGetElementById("uploaded_file_list_"+upload_target_srl); if(!field_obj) return; + var fo_obj = field_obj.parentNode; while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; } fo_obj.target = 'tmp_upload_iframe'; @@ -59,30 +80,33 @@ function editor_upload_form_set(upload_target_srl) { var document_srl = ""; if(fo_obj["document_srl"]) document_srl = fo_obj.document_srl.value; + // 기 등록된 파일 표시 + editor_display_uploaded_file(upload_target_srl); +} + +// upload_target_srl에 등록된 파일 표시 +var prev_upload_target_srl = 0; +function editor_display_uploaded_file(upload_target_srl) { + if(typeof(upload_target_srl)=='undefined'||!upload_target_srl) { + if(prev_upload_target_srl) { + upload_target_srl = prev_upload_target_srl; + prev_upload_target_srl = 0; + } else return; + } var url = "./?act=procFileDelete&upload_target_srl="+upload_target_srl; // iframe에 url을 보내버림 var iframe_obj = xGetElementById('tmp_upload_iframe'); if(!iframe_obj) return; - iframe_obj.contentWindow.document.location.href=url; } // 파일 업로드 -function editor_file_upload(field_obj, upload_target_srl) { - if(uploading_file) return; - - var fo_obj = field_obj.parentNode; - while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; } - - uploading_file = true; - fo_obj.submit(); - uploading_file = false; - - var sel_obj = xGetElementById('uploaded_file_list_'+upload_target_srl); - var str = 'wait for uploading...'; - var opt_obj = new Option(str, '', true, true); - sel_obj.options[sel_obj.options.length] = opt_obj; +function editorUploadFile(upload_target_srl) { + var swf_uploader = xGetElementById("swf_uploader_"+upload_target_srl); + if(!swf_uploader) return; + swf_uploader.browse(); + prev_upload_target_srl = upload_target_srl; } // 업로드된 파일 목록을 삭제 @@ -162,6 +186,8 @@ function editor_remove_file(upload_target_srl) { if(!iframe_obj) return; iframe_obj.contentWindow.document.location.href=url; + + xInnerHtml(preview_obj, ""); } // 업로드 목록의 선택된 파일을 내용에 추가 diff --git a/modules/file/file.controller.php b/modules/file/file.controller.php index 17353b2a9..5712fa7a3 100644 --- a/modules/file/file.controller.php +++ b/modules/file/file.controller.php @@ -27,7 +27,7 @@ $output = $this->insertFile($module_srl, $upload_target_srl); // 첨부파일의 목록을 java script로 출력 - $this->printUploadedFileList($upload_target_srl); + //$this->printUploadedFileList($upload_target_srl); } @@ -59,7 +59,7 @@ * @brief 첨부파일 추가 **/ function insertFile($module_srl, $upload_target_srl) { - $file_info = Context::get('file'); + $file_info = Context::get('Filedata'); // 정상적으로 업로드된 파일이 아니면 오류 출력 if(!is_uploaded_file($file_info['tmp_name'])) return false;
- + - +