Open betterthani opened 1 year ago
html
이미지 박스
<div class="post-pic-box">
<div class="shopping-img-place">
<!-- <ul id="Preview" class="sortable"></ul> -->
<img alt="post 이미지" src="" class="shopping-img-place w-100 btn" id="post-file-img">
</div>
<div class="mb-3">
<input class="d-none" type="file" id="post-file-btn" accept=".jpg, .png, .jpeg, .gif">
<a href="#" id="fileUploadBtn"><i class="fa fa-camera text-dark fa-lg mx-3"></i></a>
<div id="fileList">
</div>
<a href="#" id="fileUploadBtn"><i class="fa fa-file text-dark fa-lg mx-3">파일 업로드</i></a>
script (document밖)
//이미지 삭제
function delImg(_this){
$(_this).parent('li').remove()
delete filesArr[_this];
}
// 파일 프리뷰
function preview(arr){
arr.forEach(function(e){
let fileName = e.name;
// div에 이미지 추가
let str = '<div style="display: inline-flex; padding: 10px;"><li class="filebox">';
str += '<span>'+fileName+'</span><br>';
// 이미지 파일 미리보기
if(e.type.match('image.*')){
//파일을 읽기 위한 FileReader객체 생성
var reader = new FileReader();
reader.onload = function (e) {
//파일 읽어들이기를 성공했을때 호출되는 이벤트 핸들러
str += '<img src="'+e.target.result+'" title="'+e.name+'" width=80 height=80 class="filebox">';
str += '<a href="#" onclick="delImg(this);"><i class="fa fa-times text-dark"></i></a>';
str += '</li></div>';
$(str).appendTo('#Preview');
}
reader.readAsDataURL(e);
}
});
}
script (파일 선택시)
// 이미지 초기화
$('#Preview').empty();
// 미리보기
preview(filesArr);
이렇게 이미지 파일 등록, 삭제까진 되는거 확인했으나, 이미지가 최대 3개까지 지원하게끔 해주고싶었는데 그 부분은 못불러오는 듯하여 이미지 미리보기 지원없이 파일명만 확인되는 화면으로 바꾸어줬다.
다중이미지 사용할 경우 배열을 이용한다.
이미지를 3장까지만 입력가능하게 하기 위해
해당 내용을 첨부해주었다.
다중이미지를 선택 한 후 삭제도 가능하게 기능을 추가하였으나, 미리보기 또한 지원을 해주고싶어 해당 이미지를 삭제했을 경우 이미지도 같이 삭제해주게끔 만들어야하는데
이부분을 알아봐야할 것 같다.