/* @author romeojks (romeojks@gmail.com) @version 0.1 @brief 파일 업로드 관련 */ function swfUploadPreLoad() { var self = this; var loading = function () { document.getElementById("divLoadingContent").style.display = ""; var longLoad = function () { document.getElementById("divLoadingContent").style.display = "none"; document.getElementById("divLongLoading").style.display = ""; }; this.customSettings.loadingTimeout = setTimeout(function () { longLoad.call(self) }, 15 * 1000 ); }; this.customSettings.loadingTimeout = setTimeout(function () { loading.call(self); }, 1*1000 ); } function swfUploadLoaded() { var self = this; clearTimeout(this.customSettings.loadingTimeout); document.getElementById("divLoadingContent").style.display = "none"; document.getElementById("divLongLoading").style.display = "none"; document.getElementById("divAlternateContent").style.display = "none"; } function swfUploadLoadFailed() { clearTimeout(this.customSettings.loadingTimeout); document.getElementById("divLoadingContent").style.display = "none"; document.getElementById("divLongLoading").style.display = "none"; document.getElementById("divAlternateContent").style.display = ""; } function fileQueued(file) { try { var obj = document.getElementById(this.customSettings.fileListAreaID); var filename = file.name; if (filename.length > 20) { filename = filename.substr(0,20) + "..."; }; var text = filename + " (대기중...)"; var value = last_bf_no + file.index; var opt_obj = new Option(text, value, true, true); obj.options[obj.options.length] = opt_obj; } catch (ex) { this.debug(ex); } } function fileQueueError(file, errorCode, message) { try { switch (errorCode) { case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED : alert(message == 0 ? "더이상 업로드 할 수 없습니다." : (message == file_upload_limit ? file_upload_limit + "개 까지만 업로드 할 수 있습니다." : file_upload_limit + "개 까지만 업로드 할 수 있습니다.\n\n" + "현재 " + message + "개 남았습니다.")); break; case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT : alert("업로드 가능한 파일 용량(" + file_size_limit + ")을 초과했습니다.\n\n" + "File name: " + file.name + ", File size: " + getfilesize(file.size)); break; case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE : alert("파일 사이즈가 '0' 입니다.\n\n" + "File name: " + file.name + ", File size: " + getfilesize(file.size)); break; case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE : alert("파일 타입이 올바르지 않습니다.\n\n" + "File name: " + file.name + ", File size: " + getfilesize(file.size)); break; default : alert("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + getfilesize(file.size) + ", Message: " + message); break; }; } catch (ex) { this.debug(ex); }; } function fileDialogComplete(numFilesSelected, numFilesQueued) { try { this.startUpload(); } catch (ex) { this.debug(ex); }; } function uploadStart(file) { try { if ((sum_filesize + file.size) > getfilesize1(file_allsize_limit)) { return false; } else { return true; }; } catch (ex) { this.debug(ex); }; } function uploadProgress(file, bytesLoaded, bytesTotal) { try { var obj = document.getElementById(this.customSettings.fileListAreaID); var percent = Math.ceil((bytesLoaded / bytesTotal) * 100); var filename = file.name; if (filename.length > 20) { filename = filename.substr(0,20) + "..."; }; var text = filename + " (" + percent + " %)"; var bf_position = last_bf_no + file.index; obj.options[bf_position].text = text; } catch (ex) { this.debug(ex); }; } function uploadSuccess(file, serverData) { try { var obj = document.getElementById(this.customSettings.fileListAreaID); var bf_position = last_bf_no + file.index; var params = { "bo_table" : bo_table, "wr_id" : wr_id, "w" : w, "bf_position" : bf_position+1 }; var url = swfupload_path + "/get_file_info.php"; $.ajax({ type: 'post', url: url, data: params, success : after_upload_success = function(req) { var file = eval('('+req+')'); var file_size = (file.bf_filesize / 1024).toFixed(1); var text = file.bf_source + " (" + getfilesize(file.bf_filesize) + ")"; var value = file.bf_no + "|" + file.bf_source + "|" + file.bf_file + "|" + file.bf_filesize + "|" + file.bf_width + "|" + file.bf_type; obj.options[bf_position].text = text; obj.options[bf_position].value = value; eval("preview(file.bf_file)"); } }); sum_filesize = sum_filesize + file.size; document.getElementById("uploader_status").innerHTML = "문서첨부제한 : " + getfilesize(sum_filesize) + " / " + file_allsize_limit + "
파일제한크기 : " + file_size_limit + " (허용확장자 : " + file_types_description + ")"; } catch (ex) { this.debug(ex); }; } function uploadError(file, errorCode, message) { try { switch (errorCode) { case SWFUpload.UPLOAD_ERROR.HTTP_ERROR : alert("네트워크 에러가 발생하였습니다. 관리자에게 문의하세요.\n\n" + "File name: " + file.name); break; case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED : alert("파일 업로드가 실패하였습니다.\n\n" + "File name: " + file.name + ", File size: " + getfilesize(file.size)); break; case SWFUpload.UPLOAD_ERROR.IO_ERROR : alert("입출력 에러가 발생하였습니다.\n\n" + "다른 프로그램에서 이 파일(" + file.name + ")을 사용중인지 확인하세요."); break; case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR : alert("보안 에러가 발생하였습니다. 관리자에게 문의하세요.\n\n" + "File name: " + file.name); break; case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED : alert("업로드 가능한 파일 용량(" + file_size_limit + ")을 초과했습니다.\n\n" + "File name: " + file.name + ", File size: " + getfilesize(file.size)); break; case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED : alert("업로드 가능한 총파일 용량(" + file_allsize_limit + ")을 초과했습니다.\n\n" + "File name: " + file.name + ", File size: " + getfilesize(file.size)); break; case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED : // If there aren't any files left (they were all cancelled) disable the cancel button if (this.getStats().files_queued === 0) { document.getElementById(this.customSettings.cancelButtonId).disabled = true; }; break; case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED : break; default : alert("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + getfilesize(file.size) + ", Message: " + message); break; } } catch (ex) { this.debug(ex); }; } function uploadComplete(file) { /*if (this.getStats().files_queued === 0) { document.getElementById(this.customSettings.cancelButtonId).disabled = true; }*/ } function getfilesize(size) { if (!size) { return "0 Byte"; }; if (size < 1024) { return (size + " Byte"); } else if (size > 1024 && size < 1024 *1024) { return (size / 1024).toFixed(1) + " KB"; } else { return (size / (1024*1024)).toFixed(2) + " MB"; }; } function getfilesize1(size) { var file_size = size.split(" "); if (!file_size[0]) { return 0; }; if (file_size[1] == "MB") { return (file_size[0] * (1024*1024)); } else if (file_size[1] == "KB") { return (file_size[0] * 1024); } else { return (file_size[0]); }; } function delete_file() { try { var obj = document.getElementById("uploaded_file_list"); var url = swfupload_path + "/file_delete.php"; for (var i=0; i파일제한크기 : " + file_size_limit + " (허용확장자 : " + file_types_description + ")"; }; }; } catch (ex) { this.debug(ex); }; } function delete_file_complete() { try { var obj = document.getElementById("uploaded_file_list"); for (var i=0; i"; } else if (thumb && thumb_kind == "etc") { document.getElementById("image_preview").innerHTML = ""; } else { document.getElementById("image_preview").innerHTML = "미리보기"; }; } catch (ex) { this.debug(ex); }; } function file_to_editor() { try { var files_list = document.getElementById("uploaded_file_list"); var html = ''; if (!files_list.value) { alert('파일을 선택해주세요.'); return false; }; for (var i=0; i"; } else { alert("이미지만 삽입 할 수 있습니다."); //path = "download.php?bo_table=" + bo_table + "&filename=" + file.bf_file + "&filesource=" + file.bf_source + ""; //html += "" + file.bf_source + "
\n"; } }; }; insert_editor(html2); } catch (ex) { this.debug(ex); }; } function insert_editor(html) { try { ed_wr_content.insertContents(html); /* if (typeof(ed_wr_content) != "undefined") if (geditor_wr_content.get_mode() == "WYSIWYG") { document.getElementById("geditor_wr_content_frame").contentWindow.document.body.focus(); geditor_wr_content.get_range(); html = html + "
"; } else if (geditor_wr_content.get_mode() == "TEXT") { html = html + "\n"; } else { html = html + "
"; } geditor_wr_content.insert_editor(html); } else { document.getElementById("wr_content").value += html + "\n"; } */ } catch (ex) { this.debug(ex); }; } function get_file_info(val) { try { var arr = val.split('|'); var ret = {"bf_no":arr[0], "bf_source":arr[1], "bf_file":arr[2], "bf_filesize":arr[3], "bf_width":arr[4], "bf_type":arr[5]}; return ret; } catch (ex) { this.debug(ex); }; }