웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
Sketchbook5 모바일 게시판에 파일 업로드 기능 추가 하기
2012.11.28 15:11
그냥재미로님의 모바일 파일 업로드 지원 게시판이 있는데
요걸 잘하면 스케치북5 모바일 게시판도 업로드가 가능 하게 할 수 있지 않을 까해서
끄적이다 아주그냥 대공사를 하고 말았습니다 ㅠㅠ
테스트 기종
아이폰4S IOS 5.1.1
갤석시S3 4.1
모두 이상 없이 잘됩니다.
먼저 write_form.html 8번째 줄
<!--%import("css/board.css")-->
밑에 추가 해줍니다.
<!--%import("./js/ajaxfileupload.js")--> <?php include_once(_XE_PATH_.'/modules/file/file.class.php'); include_once(_XE_PATH_.'/modules/file/file.controller.php'); $oFileController = &getController('file'); if(!$_SESSION['_editor_sequence_']) $_SESSION['_editor_sequence_'] = 1; $editor_sequence = $_SESSION['_editor_sequence_'] ++; $oFileController->setUploadInfo($editor_sequence, $upload_target_srl); $_SESSION['upload_info'][$editor_sequence]->enabled = true; $_SESSION['upload_info'][$editor_sequence]->upload_target_srl = $upload_target_srl; ?> <style type="text/css"> .success { border-width: 1px; border-style: dotted; border-color: blueViolet; padding: 10px; } .success img { display: block; } .success a { margin-left: 10px; font-weight: bold; } </style> <script type="text/javascript" > jQuery.extend({ handleError: function( s, xhr, status, e ) { // If a local callback was specified, fire it if ( s.error ) s.error( xhr, status, e ); // If we have some XML response text (e.g. from an AJAX call) then log it in the console else if(xhr.responseText) console.log(xhr.responseText); } }); function ajaxFileUpload() { if(document.getElementById('Filedata').value ==""){ alert("파일을 선택하세요"); return false; } var up=jQuery("#t_document_srl").attr("value"); jQuery.ajaxFileUpload ( { url:'index.php?&act=procFileIframeUpload', secureuri:false, fileElementId:'Filedata', dataType: 'html', data:{ mid: '{$mid}', editor_sequence: '1', uploadTargetSrl: up, manual_insert: 'true' }, success: function (frameId, data, status) { var frm = document.getElementById('ff'); var io = document.getElementById(frameId); if(io.contentWindow) { var sourceFile = document.getElementById(frameId).contentWindow.uploaded_fileinfo.source_filename; var uploadFile = document.getElementById(frameId).contentWindow.uploaded_fileinfo.uploaded_filename; var document_srl = document.getElementById(frameId).contentWindow.uploaded_fileinfo.upload_target_srl; var file_srl = document.getElementById(frameId).contentWindow.uploaded_fileinfo.file_srl; }else if(io.contentDocument) { var sourceFile = document.getElementById(frameId).contentDocument.uploaded_fileinfo.source_filename; var uploadFile = document.getElementById(frameId).contentDocument.uploaded_fileinfo.uploaded_filename; var document_srl = document.getElementById(frameId).contentDocument.uploaded_fileinfo.upload_target_srl; var file_srl = document.getElementById(frameId).contentDocument.uploaded_fileinfo.file_srl; } //frm.document_srl.value = document_srl; jQuery("#t_document_srl").attr("value",document_srl); // document.getElementById('Filedata').value ='aaa'; if(uploadFile != ""){ var Extension = uploadFile.substring(uploadFile.lastIndexOf('.') + 1).toLowerCase(); if (Extension == "gif" || Extension == "png" || Extension == "bmp" || Extension == "jpeg" || Extension == "jpg") { jQuery('<li id="'+file_srl+'" class="wrt_opt"></li>').appendTo('#files').html('<img width="50px" height="atuo" src="'+uploadFile+'" /><span class="filename">'+sourceFile+'</span><a href="javascript:delete_file('+file_srl+',1)" class="abn dark">{$lang->cmd_delete}</a>').addClass('success'); } else { jQuery('<li id="'+file_srl+'" class="wrt_opt"></li>').appendTo('#files').html('<span class="filename">'+sourceFile+'</span><a href="javascript:delete_file('+file_srl+',1)" class="abn dark">{$lang->cmd_delete}</a>').addClass('success'); } } else{ jQuery('<li></li>').appendTo('#files').text(sourceFile).addClass('error'); } if(typeof(data.error) != 'undefined') { if(data.error != '') { alert(data.error); }else { alert(data.msg); } } }, error: function (data, status, e) { alert(e); } } ) return false; } function frmSubmit(){ var frm = document.getElementById('ff'); procFilter(frm, insert); } function delete_file(file_srl,editorSequence){ var msg = window.confirm('삭제하시겠습니까?'); if(msg) { var settings = file_srl; var params = new Array(); params["file_srls"] = file_srl; params["editor_sequence"] = editorSequence; var response_tags = new Array("error","message"); exec_xml("file","procFileDelete", params, function() { reloadFileList(settings); } ); }else{ return false; } } function reloadFileList(settings) { jQuery("#"+settings).remove(); } jQuery($).ready(function($){ $("#loading_dialog") .ajaxStart(function(){ $(this).show(); $("#loading_form").hide(); }) .ajaxComplete(function(){ $(this).hide(); $("#loading_form").show(); }); }); </script>
그 다음 같은 파일에서
<li>
<label for="nText">{$lang->content}</label>
<textarea name="content" cols="20" rows="8" id="nText"></textarea>
</li>
요렇게 생긴 놈 밑에 추가 합니다.
<ul id="files" > </ul> <li class="wrt_locate"> <div id="loading_dialog" style="display:none"> <img id="loading" src="./img/loading.gif"> <p>잠시만 기다려 주세요</p> </div> <div id="loading_form"> <label for="nFileUpload">파일첨부</label> <input id="Filedata" type="file" name="Filedata" class="input" style="width:100%;" value=""> <button type="button" id="buttonUpload" onclick="return ajaxFileUpload();" class="btn">파일 업로드</button> <p>파일을 먼저 업로드하신 후 등록하세요</p> </div> </li>
그다음은 ./js/ 폴더에
이 파일을 올려 줍니다.
아마도 이렇게 하면 됩니다.
이게 힘들다 싶으면
이파일을 덮어 쓰셔도 됩니다.
댓글 14
제목 | 글쓴이 | 날짜 |
---|---|---|
익스8 호환성보기 없애기
[4]
![]() | 오델라가루 | 2010.02.02 |
너도나도 다 아는 팁... 한/영키 안먹힐때 [15] | 오델라가루 | 2010.02.02 |
서버 이전하고 놓치기 쉬운 점(files의 소유권과 root의 퍼미션) [4] | 영구만세 | 2010.02.02 |
외부프로그램에서 제로보드 xe 및 그누보드 회원 연동(로그인) 하기 - 초간단 [1] | 한이73 | 2010.02.03 |
레이아웃의 자유도때문에 궂이 제로보드4를 사용하시려는 분들은... [7] | 아카스 | 2010.02.03 |
XE를 다른 호스팅업체로 이전하기 (서버이전)
[8]
![]() | Gekkou | 2010.02.03 |
스킨 게시판 제목에 태그 넣기
[4]
![]() | 꽃들 | 2010.02.04 |
모듈제작시 tip아닌 tip | 푸하라 | 2010.02.10 |
tip 아닌 tip -> xml로 만드는 query 이용 너무 어렵다면 .... [4] | 푸하라 | 2010.02.10 |
XE 업뎃시 꼭 체크해야할 사항입니다.(초보분들만 보세요.) [2] | leoer | 2010.02.12 |
XE레이아웃을 자유롭게 편집하기 위한 DIV + css학습 참고 사이트 [3] | 한스김 | 2010.02.15 |
윈도우에 APM 설치 후, 사용자 추가 방법 | Gekkou | 2010.02.16 |
XE 전체를 백업 / 복원하기 (계정 백업 및 복원 방법) [7] | Gekkou | 2010.02.16 |
게시판 목록에서 쓰기 버튼을 관리그룹만 보이도록 하기 [14] | 다케루 | 2010.02.18 |
페이지 수정 내용직접추가 에러 나시는 분들께.. [1] | 청개굴이 | 2010.02.19 |
로그인 후 특정 그룹 페이지 가기 다른버전 [9] | 눈물많은OrOi | 2010.02.22 |
Skin에 xml query 직접 만들고 사용하기 [2] | June Oh | 2010.02.23 |
초보자를 위한 제로보드에 애드온 프로그램 설치하기 강좌 | 이하늘690 | 2010.02.23 |
플래시 뒤로 로그인창 숨는 문제 [5] | 김지훈295 | 2010.02.25 |
E-Mail을 ID로 사용하기
[3]
![]() | June Oh | 2010.02.25 |