멀티업로드 관련 문의
본문
<input type="file" name="bf_file" multiple >
멀티 형식으로 첨부를 여러개 첨부하면
위 이미지처럼 File 형태로 배열이 만들어져서 업로드 저장까지는 해결했습니다
문제는 수정하려고 할때인데요...
수정페이지 들어가서 첨부 파일 관련 디비 정보를 불러와서 어떻게 만들어야 할지 감이 안와서요...
조언좀 해주실분 계신가요..
https://developer.mozilla.org/en-US/docs/Web/API/File
File 관련 함수가 있는거 같은데 이걸 어떻게 써먹는건지 모르겠습니다 ㅠㅠ
샘플
var file = new File(["foo"], "foo.txt", {
type: "text/plain",
});
위 샘플로 동일하게 하면 위 File 배열이 만들어지긴 하는데
첫번째 값 ["foo"] 이부분에 뭘 넣어야 할지 모르겠어서요
두번째는 파일명같아서 디비에 잇는 파일명 넣음될거같고...
type 부분도 첨부 형식에 맞춰 넣음 될거같고...
조언좀 부탁드립니다~~
답변 1
그누보드는 파일 업로드시 배열로 순차적으로 파일을 받아 처리하고 있습니다
멀티 업로드 형태로 하면 하나의 파일 업로드에도 갯수에 따라 0, 1, 2의 배열을 보낸것과 동일해집니다
db에서는 g5_board_file에 wr_id(게시글 아이디), bf_no(파일 순서, 배열의 순서와 동일)로 저장 되구요.
다만 수정시에 bf_name[]의 이름값을 가진 인풋태그가 있는경우 0부터 시작하게 됩니다.
0에 이미 업로드가 되어있어도, 그누보드에서는 이미 업로드 된 배열에 또 다시 요청이 들어오면 기존 파일을 지우고 덮어씌우는 형태로 되어있기 때문에 해당부분을 예외처리해주셔야하며,
마찬가지로 멀티업로드의 경우, 삭제시에도 중간 배열을 삭제한다고 해서 중간 배열을 공란으로 남기는게 아니라 빈공간을 채워지는 형태로 가기 때문에 의도하지 않은 파일이 덮어씌워지고 삭제 됩니다.
결론을 말하자면, 그누보드의 파일 저장 형태는 구조상으로 다중업로드를 업로드하는데는 문제가 없으나 수정하고 삭제하는데에는 여러가지 문제가 발생하는 형태라 볼 수 있습니다.
그누보드의 파일업로드를 아예 전체적으로 다 수정하시거나, 또는 수정이나 삭제시에만 구조에 맞게 프론트단, 또는 백단에서 수정해주셔야 합니다.