jquery로 드래그&드롭 멀티 파일 첨부하기 정보
jquery로 드래그&드롭 멀티 파일 첨부하기본문
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
function fileDragEnter(event){
event.stopPropagation();
event.preventDefault();
// 드롭다운 영역 css
$(this).css('background-color','#E3F2FC');
}
function fileDragLeave(event){
event.stopPropagation();
event.preventDefault();
// 드롭다운 영역 css
$(this).css('background-color','#E3F2FC');
}
function fileDragOver(event){
event.stopPropagation();
event.preventDefault();
// 드롭다운 영역 css
$(this).css('background-color','#E3F2FC');
}
function fileDrop(ev){
ev.preventDefault();
// 드롭다운 영역 css
$(this).css('background-color','#FFFFFF');
var files = ev.target.files||ev.dataTransfer.files;
var strHtml="";
$("#files").html("");
$("input[type='file']")
.prop("files",files) // put files into element
.closest("form")
for(var i=0;i<files.length;i++){
strHtml+=files[i].name+"<br/>";
var reader = new FileReader();
reader.readAsDataURL(files[i]);
reader.onload = function (e) {
}
}
$("#file-div").html(strHtml);
if(files != null){
if(files.length < 1){
alert("폴더 업로드 불가");
return;
}
//selectFile(no,cnt,files)
}else{
alert("ERROR");
}
}
</script>
<input type="file" name="file[]" id="file" multiple style="display:none" onchange="fileDrop(event)">
<div style="width:100%;border:2px dashed #f0f0f0;height:400px;overflow-y:scroll" id="file-div" onclick="$('#file').click();" ondragenter="fileDragEnter(event)" ondragleave="fileDragLeave(event)" ondragover="fileDragOver(event)" ondrop="fileDrop(event)">
드래그해서 파일첨부를 하거나 또는 클릭해서 파일 첨부 하시길 바랍니다.
</div>
ajax는 알아서 작업하시면 됩니다 ^^
!-->
추천
5
5
댓글 2개
좋은자료 감사합니다.
감사합니다.. 그런데 문제가 있어 질문합니다
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
function fileDragEnter(event){
event.stopPropagation();
event.preventDefault();
// 드롭다운 영역 css
$(this).css('background-color','#E3F2FC');
}
function fileDragLeave(event){
event.stopPropagation();
event.preventDefault();
// 드롭다운 영역 css
$(this).css('background-color','#E3F2FC');
}
function fileDragOver(event){
event.stopPropagation();
event.preventDefault();
// 드롭다운 영역 css
$(this).css('background-color','#E3F2FC');
}
function fileDrop(ev){
ev.preventDefault();
// 드롭다운 영역 css
$(this).css('background-color','#FFFFFF');
var files = ev.target.files||ev.dataTransfer.files;
var strHtml="";
$("#files").html("");
$("input[type='file']")
.prop("files",files) // put files into element
.closest("form")
for(var i=0;i<files.length;i++){
strHtml+=files[i].name+"<br/>";
var reader = new FileReader();
reader.readAsDataURL(files[i]);
reader.onload = function (e) {
}
}
$("#file-div").html(strHtml);
if(files != null){
if(files.length < 1){
alert("폴더 업로드 불가");
return;
}
//selectFile(no,cnt,files)
}else{
alert("ERROR");
}
}
</script>
<?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 " multiple style="display:none" onchange="fileDrop(event)">
</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 } ?>
<div style="width:100%;border:2px dashed #f0f0f0;height:400px;overflow-y:scroll" id="file-div" onclick="$('#file').click();" ondragenter="fileDragEnter(event)" ondragleave="fileDragLeave(event)" ondragover="fileDragOver(event)" ondrop="fileDrop(event)">
드래그해서 파일첨부를 하거나 또는 클릭해서 파일 첨부 하시길 바랍니다.
</div>
위와 같이 write.skin.php 에 넣고 파일업로드 하면 잘 올라가는데 1개의 글에 올린 10개의 이미지중 1개만 삭제하고 다른 것으로 수정하려고 하면 1개씩 삭제는 되는 데 1개의 이미지만 다른 것으로 수정하려고 하면 안되네요...기존에 올린 이미지를 모두 삭제해야 다른 이미지로 수정이 가능합니다. 어디가 잘 못된걸까요!!
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
function fileDragEnter(event){
event.stopPropagation();
event.preventDefault();
// 드롭다운 영역 css
$(this).css('background-color','#E3F2FC');
}
function fileDragLeave(event){
event.stopPropagation();
event.preventDefault();
// 드롭다운 영역 css
$(this).css('background-color','#E3F2FC');
}
function fileDragOver(event){
event.stopPropagation();
event.preventDefault();
// 드롭다운 영역 css
$(this).css('background-color','#E3F2FC');
}
function fileDrop(ev){
ev.preventDefault();
// 드롭다운 영역 css
$(this).css('background-color','#FFFFFF');
var files = ev.target.files||ev.dataTransfer.files;
var strHtml="";
$("#files").html("");
$("input[type='file']")
.prop("files",files) // put files into element
.closest("form")
for(var i=0;i<files.length;i++){
strHtml+=files[i].name+"<br/>";
var reader = new FileReader();
reader.readAsDataURL(files[i]);
reader.onload = function (e) {
}
}
$("#file-div").html(strHtml);
if(files != null){
if(files.length < 1){
alert("폴더 업로드 불가");
return;
}
//selectFile(no,cnt,files)
}else{
alert("ERROR");
}
}
</script>
<?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 " multiple style="display:none" onchange="fileDrop(event)">
</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 } ?>
<div style="width:100%;border:2px dashed #f0f0f0;height:400px;overflow-y:scroll" id="file-div" onclick="$('#file').click();" ondragenter="fileDragEnter(event)" ondragleave="fileDragLeave(event)" ondragover="fileDragOver(event)" ondrop="fileDrop(event)">
드래그해서 파일첨부를 하거나 또는 클릭해서 파일 첨부 하시길 바랍니다.
</div>
위와 같이 write.skin.php 에 넣고 파일업로드 하면 잘 올라가는데 1개의 글에 올린 10개의 이미지중 1개만 삭제하고 다른 것으로 수정하려고 하면 1개씩 삭제는 되는 데 1개의 이미지만 다른 것으로 수정하려고 하면 안되네요...기존에 올린 이미지를 모두 삭제해야 다른 이미지로 수정이 가능합니다. 어디가 잘 못된걸까요!!