웹마스터 팁

그냥재미로님의 모바일 파일 업로드 지원 게시판이 있는데

요걸 잘하면 스케치북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/ 폴더에

ajaxfileupload.js

이 파일을 올려 줍니다.


아마도 이렇게 하면 됩니다.


이게 힘들다 싶으면

sketchbook5Mobile.zip

이파일을 덮어 쓰셔도 됩니다.

제목 글쓴이 날짜
[1.5.0.2 beta] Err : "./system_message.html" template file does not exists. [1] paulryu03 2011.10.01
1.5.0.2베타 초기설치시 Err : "./system_message.html" template file does not exists. [1] 인스크랩 2011.10.02
호스팅환경 말고!! 서버 환경에서 msg_make_directory_failed (쉬운설치) 해결 방법, (+아이콘 샵 아이콘 표시가 안될 경우) 파이어레듵 2013.03.28
소스 수정할 때, utf-8로 한글 적는 방법. $lang 때문에 애먹는 분들에게 드리는 초간단 팁... utf-8 <-> euc-kr 변환방법 [2] 최르토스 2013.01.30
Xe 1.5에서 파일첨부 안될때 해결방법 [19] file 황비 2012.01.17
admin_bar.html 오류 해결팁? [1] 윤성희R 2013.03.27
v1.5를 위한 팝업 모듈과 팝업 오프너 애드온 [55] file 우진홈 2012.02.06
Sketchbook5 모바일 게시판에 파일 업로드 기능 추가 하기 [14] file hhgyu 2012.11.28
날짜 부분에 시간도 같이 표시하기 [1] file 소백산 2009.02.05
Sketchbook5 레이아웃과 관리자메뉴 충돌 해결 [2] file YJSoft 2013.03.20
팝업모듈 사용시 슬라이드js와 충돌문제 [2] 꿈틀잉 2013.03.21
요약 책갈피 경량판 sns 링크 버튼 디자인 보완 [1] file 웹플러스7 2013.03.21
글 순서 바꾸기 임시방편 [6] 장운주 2008.04.18
네이버 신디케이션(syndication)이 standby로 바뀌는 문제 대처 방안 [4] Define 2012.01.19
회원정보 페이지에 작성 댓글 보기 추가하기 [7] file 늘푸른이 2012.07.12
[애드온]글 , 댓글 삭제시 휴지통으로 보내기 [13] file 민채아빠 2013.01.16
팝업 모듈에서, 사이트 전체에 팝업 띄우는 방법 모르시는 분들을 위해 ^^; [2] sejin7940 2013.03.13
지식인 모듈 기본스킨에서 카테고리 선택 안 해도 질문이 등록되는 버그 수정법 sejin7940 2013.03.12
데이타베이스 복제를 하면 속도가 8%정도 빨라짐 가을풍경 2013.03.03
회원가입시 유저가 비공개 설정하기 [1] file 모앱 2013.03.03