게시판 멀티 업로드 베이직 스킨 정보
게시판 게시판 멀티 업로드 베이직 스킨
관련링크
첨부파일
본문
아래 두 파일 /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 끝
/******************************************************************************************************************************************************/
?>
초보자경우는 그냥 업로드 하세요.
읽어주셔서 감사합니다.
많은분들 문의 남겨주셔서 바로바로 답장못드려서 죄송합니다
카톡오픈채팅방 오픈하였습니다
바로답장원하시는분 카톡 오픈 채팅에 문짜주세요
오픈채팅 링크 https://open.kakao.com/o/sSmfVLJb
12
댓글 전체




초보자 올림

베이직 스킨을 적용한 게시판에 압축File이나 Text File 첨부하면
"지원하지 않는 파일격식입니다"라는 Error메시지가 나옵니다.
어디를 수정해야 하는지요?

감사합니다 잘 사용할께요


아미나빌더 용을 제작해서 올려드리겠습니다.



