반응형
작동 로직은 이러합니다.
1. 유저가 dropzone에 사진 드랍 후 제목, 내용 작성
2. 게시글 업로드 저장 버튼 클릭(dropzone이 보내는 이미지는 base64라서 그냥 db 저장 불가.)
3. 이미지 서버로 이미지 업로드 후 성공시 url 주소 가져옴.
4. url 주소를 db 서버에 보내기
+++
이전 로직에 없던 부분이 파일 업로드 체크...
그리고 하다보니 1개를 넘어가면 기존 파일을 삭제하고 다시 업로드 되는 부분도 없어졌더라;;
해당 부분 복구 끝.
Dropzone.options.fileDropzone = {
url: '이미지 서버주소', //업로드할 url (ex)컨트롤러)
init: function () { /* 최초 dropzone 설정시 init을 통해 호출 */
let myDropzone = this; //closure
this.on('error', function(file, errorMessage) {
alert(errorMessage);
this.removeAllFiles();
});
this.on("maxfilesexceeded", function(file) { // 파일 최대 갯수에 따라서 삭제하고 다시 올리는 로직
this.removeAllFiles();
this.addFile(file);
});
$('#버튼').click(() => {
if (!myDropzone.files || !myDropzone.files.length) {
alert("업로드 된 사진이 없습니다.\n사진 업로드 후 시도해주세요.");
}
let title = $('#제목').val();
let desc = $('#내용').val();
if(title == '' || title == ' ') {
alert('제목이 비어있거나 빈공간으로 시작되고 있습니다.');
} else if(desc == '' || desc == ' ') {
alert('설명이 비어있거나 빈공간으로 시작되고 있습니다.');
} else {
myDropzone.processQueue();
myDropzone.on("success", function(file, responseText) {
let data = {
title,
desc,
imgUrl: responseText
};
let res = $.ajax({
url: "db서버",
data,
~~~~
}); // ajax를 넣으면 됩니다.
});
}
})
},
autoProcessQueue: false, // 자동업로드 여부 (true일 경우, 바로 업로드 되어지며, false일 경우, 서버에는 올라가지 않은 상태임 processQueue() 호출시 올라간다.)
clickable: true, // 클릭가능여부
thumbnailHeight: 120, // Upload icon size
thumbnailWidth: 120, // Upload icon size
maxFiles: 1, // 업로드 파일수
maxFilesize: 100, // 최대업로드용량 : 100MB
paramName: 'image', // formdata 이름 설정
parallelUploads: 1, // 동시파일업로드 수(이걸 지정한 수 만큼 여러파일을 한번에 컨트롤러에 넘긴다.)
addRemoveLinks: true, // 삭제버튼 표시 여부
dictRemoveFile: '삭제', // 삭제버튼 표시 텍스트
uploadMultiple: false, // 다중업로드 기능
acceptedFiles: ".jpeg,.jpg,.png,.gif,.JPEG,.JPG,.PNG,.GIF",
};
이상 끝.
-업로드 체크 출처 -
https://stackoverflow.com/questions/35798497/how-to-check-if-there-is-already-an-image-in-dropzone
728x90
'취업 > Dropzone' 카테고리의 다른 글
[Dropzone] 업로드 파일 선택 버그 (0) | 2022.02.18 |
---|---|
[dropzone] 썸네일 추출하기 (0) | 2022.01.03 |
[Dropzone.js]게시글 제목, 내용, 사진 동시 업로드. (0) | 2021.12.29 |
[Dropzone] 해당 라이브러리 이벤트 종류 (0) | 2021.12.29 |
[Dropzone.js] dropzone.js 업로드 구현하기 (0) | 2021.12.29 |