게시판 멀티 업로드 베이직 스킨 정보
게시판 게시판 멀티 업로드 베이직 스킨관련링크
첨부파일
본문
아래 두 파일 /bbs 폴드에 넣고
ajax_upload.php
ajax_upload_for_write_update.php
/bbs 안에 write_update.php 부분에 약 654줄에
// 파일의 개수를 게시물에 업데이트 한다.
아래 코드 넣고
// ajax_upload 파일에 관한 처리
@include_once('./ajax_upload_for_write_update.php');
그리고 이 안에 write.skin.php 를 열어보면 약137번줄에
<?php for ($i=0; $is_file && $i<$file_count; $i++) { ?>
<div class="bo_w_flie write_div">
<div class="file_wr write_div">
<label for="bf_file_<?php echo $i+1 ?>" class="lb_icon"><i class="fa fa-folder-open" aria-hidden="true"></i><span class="sound_only"> 파일 #<?php echo $i+1 ?></span></label>
<input type="file" name="bf_file[]" id="bf_file_<?php echo $i+1 ?>" title="파일첨부 <?php echo $i+1 ?> : 용량 <?php echo $upload_max_filesize ?> 이하만 업로드 가능" class="frm_file ">
</div>
<?php if ($is_file_content) { ?>
<input type="text" name="bf_content[]" value="<?php echo ($w == 'u') ? $file[$i]['bf_content'] : ''; ?>" title="파일 설명을 입력해주세요." class="full_input frm_input" size="50" placeholder="파일 설명을 입력해주세요.">
<?php } ?>
<?php if($w == 'u' && $file[$i]['file']) { ?>
<span class="file_del">
<input type="checkbox" id="bf_file_del<?php echo $i ?>" name="bf_file_del[<?php echo $i; ?>]" value="1"> <label for="bf_file_del<?php echo $i ?>"><?php echo $file[$i]['source'].'('.$file[$i]['size'].')'; ?> 파일 삭제</label>
</span>
<?php } ?>
</div>
<?php } ?>
파일 업로드 부분 있습니다 아래 와같이 교체 해주세요
<?php
/******************************************************************************************************************************************************/
// ajax upload 시작 위에 원래 파일업로드 부분은 주석처리하면됨
/******************************************************************************************************************************************************/
?>
<?php if($is_file and $file_count>0): ?>
<?php
if($w == 'u'){
$new_files = [];
//echo '<pre>';print_r($file);
foreach($file as $k=>$v){
//등록된 파일에는 삭제시 필요한 bf_file 필드 추가
if(empty($v['file'])){ continue; }
$new_files[] = $v;
}
}else{ $new_files = []; }
?>
<input type="file" name="bf_file[]" style="display:none;" /><?/*그누보드 원래 파일필드라서 본스킨에서 사용하지는 않지만 없애면 에러남*/?>
<?php endif; ?>
<div style="background-color:#fff;padding:20px 0px 0px 0px;">
<input type="hidden" id="ajax_files" name="ajax_files" value="" />
<div style="position:relative;">
<input type="file" id="pic" name="pic" onchange="upload_start()" accept="image/*" multiple="multiple" class="au_input" />
<div class="au_btn_search_file">파일찾기</div>
</div>
<div id="file_list" style="padding:0px;margin:10px 0;display:flex;flex-wrap: wrap;max-width:760px;">
<?php foreach($new_files as $v): ?>
<div class="au_file_list">
<div style="max-height:50px;"><?=$v['view']?></div>
<div class="au_btn_del" onclick="delete_file('<?=$v['file']?>',this)">삭제</div>
</div>
<?php endforeach; ?>
</div>
<div class="au_progress"><div id="son" style="background-color:#9c0;color:#fff;"></div></div>
</div>
<style>
.au_input{width:100%;height:100%;display:block;opacity:0;position:absolute;top:0;left:0;z-index:999;}
.au_btn_search_file{background-color:#ddd;padding:10px;text-align:center;cursor:pointer;}
.au_btn_del{padding:5px 10px; margin-top:3px; border-radius:4px;background-color:#f00;color:#fff;opacity:0.7;cursor:pointer;}
.au_file_list{margin:5px;text-align:center;flex:0 0 60px;padding-right:5px;}
.au_progress{display:none;border-radius:4px;text-align:center;}
</style>
<script type="text/javascript">
var ajax_files = {'files':<?=empty($new_files) ? '[]' : json_encode($new_files)?>,'del':[]};
var xhr = new XMLHttpRequest();
function upload_start(){
var picFileList = $("#pic").get(0).files;
var formData = new FormData();
formData.append("act_type","upload");
formData.append("write_table","<?php echo $write_table ?>");
formData.append("bo_table","<?php echo $bo_table ?>");
formData.append("wr_id","<?php echo $wr_id ?>");
for(var i=0;i<picFileList.length;i++){ formData.append("file[]",picFileList[i]); }
/*
req.addEventListener("progress,load,error,abort", updateProgress, false);
*/
xhr.upload.addEventListener("progress",onprogress,false);
xhr.addEventListener("error",upload_failed,false);
xhr.addEventListener("load",upload_success,false);
xhr.open("POST","ajax_upload.php");
xhr.send(formData);
}
function onprogress(evt){
var loaded = evt.loaded;//已经上传大小情况
var tot = evt.total;//附件总大小
var per = Math.floor(100*loaded/tot);//已经上传的百分比
$("#son").parent().css("display","block");
$("#son").html(per+"%");
$("#son").css("width",per+"%");
}
function upload_failed(evt){ alert("업로드실패"); }
function upload_success(evt){
var res = JSON.parse(evt.target.response);
if(res.res=='true'){
for(var i=0;i<res.list.length;i++){
var str = '<div class="au_file_list">';
str += '<div>'+res.list[i].view+'</div><div class="au_btn_del" onclick="delete_file(''+res.list[i].bf_file+'',this)">삭제</div>';
str += '</div>';
$("#file_list").append(str);
ajax_files.files.push(res.list[i]);
}
$("#ajax_files").val(JSON.stringify(ajax_files));
}else{ alert(res.msg); }
}
function delete_file(file,obj){
var formData = new FormData();
formData.append("act_type","delete");
formData.append("write_table","<?php echo $write_table ?>");
formData.append("bo_table","<?php echo $bo_table ?>");
formData.append("wr_id","<?php echo $wr_id ?>");
formData.append("bf_file",file);
xhr.open("POST","ajax_upload.php");
xhr.send(formData);
$(obj).parent().remove();
ajax_files.del.push(file);
$("#ajax_files").val(JSON.stringify(ajax_files));
}
</script>
<?php
/******************************************************************************************************************************************************/
// ajax upload 끝
/******************************************************************************************************************************************************/
?>
초보자경우는 그냥 업로드 하세요.
읽어주셔서 감사합니다.
많은분들 문의 남겨주셔서 바로바로 답장못드려서 죄송합니다
카톡오픈채팅방 오픈하였습니다
바로답장원하시는분 카톡 오픈 채팅에 문짜주세요
12
댓글 전체
초보자 올림
베이직 스킨을 적용한 게시판에 압축File이나 Text File 첨부하면
"지원하지 않는 파일격식입니다"라는 Error메시지가 나옵니다.
어디를 수정해야 하는지요?
감사합니다 잘 사용할께요
아미나빌더 용을 제작해서 올려드리겠습니다.