문서 › 사진과 미디어
사진 목록과 정리
에디터 아래 사진 목록, 순서 바꾸기, 지운 업로드 되살리기와 서버 정리.
사진이 많은 글에서 에디터 아래에 사진 목록을 띄웁니다. 긴 글에서 사진을 찾아가거나 순서를 바꾸고, 지웠던 사진을 되살릴 때 씁니다. 같은 정보로 서버에 남은 쓸모없는 업로드도 정리할 수 있습니다.
직접 써 보기
에디터 아래 사진 목록에서 사진을 눌러 보고, 끌어서 순서를 바꿔 보세요. 사진을 올렸다가 지우면 목록에 흐리게 남아 다시 넣을 수 있습니다.
이 데모의 코드
createEditor('#editor', {
toolbar: 'image | undo redo',
imageTray: true,
height: 300,
// 데모: 고른 사진 대신 예시 사진 주소를 돌려줍니다
uploadImage: async (file) => 'https://picsum.photos/seed/' + Date.now() + '/640/420',
});사진 목록 (imageTray)
imageTray: true 를 주면 에디터 아래, 상태 표시줄 위에 글 안 사진의 작은 그림이 순서대로 놓입니다. 사진이 없으면 숨습니다.
- 작은 그림을 누르면 본문의 그 사진으로 스크롤하고 사진을 선택합니다.
- 작은 그림을 끌어 다른 자리에 놓으면 본문 안 사진 순서가 바뀝니다. 캡션이 있는 사진이나 링크가 걸린 사진은 그 상자째 움직입니다.
- ✕ 를 누르면 본문에서 그 사진을 지웁니다.
- 이 편집 중에 올렸다가 본문에서 빠진 사진은 흐리게 + 로 남습니다. 누르면 커서 자리에 다시 들어갑니다.
서버에 남은 업로드 정리
사진을 올린 뒤 지우거나 바꾸면 서버에는 파일이 남습니다. 저장할 때 아래 두 메서드로 정리하세요.
editor.getImages(): 지금 본문에 있는 사진 주소 목록 (중복 없음). 올리는 중인 사진과blob:·data:주소는 빠집니다.editor.getUnusedUploads(): 이 에디터가 열려 있는 동안uploadImage·uploadUrl로 올린 주소 가운데 지금 본문에 없는 것.
form.addEventListener('submit', async () => {
const unused = editor.getUnusedUploads();
if (unused.length) {
await fetch('/upload/cleanup', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ urls: unused }),
});
}
});image:remove 이벤트는 본문에서 사진이 빠질 때마다(지우기, 잘라내기, 바꾸기) { src } 로 알려 줍니다. 다만 되돌리기로 다시 돌아올 수 있으니, 서버 파일은 이 이벤트가 아니라 저장할 때 getUnusedUploads() 로 지우세요.
editor.on('image:remove', ({ src }) => console.log('빠진 사진', src));옵션
| 이름 | 타입 | 기본값 | 설명 |
|---|---|---|---|
imageTray | boolean | false | 에디터 아래 사진 목록을 보여 줍니다. |
getImages() | method | 본문에 있는 사진 주소 배열. | |
getUnusedUploads() | method | 이번에 올렸지만 본문에 없는 사진 주소 배열. | |
image:remove | event | 사진이 본문에서 빠졌을 때 { src }. |