인프런 커뮤니티 질문&답변

kimbarb님의 프로필 이미지
kimbarb

작성한 질문수

남박사의 파이썬으로 실전 웹사이트 만들기

글 작성시 첨부파일 기능 구현하기

체크박스에 체크를 하지 않고 '수정하기' 버튼을 클릭-파일삭제

작성

·

310

1

안녕하십니까~

첨부파일이 있는 경우에 '글 수정'에 들어가서 '첨부파일 삭제' 체크박스에 체크를 하지 않고 '수정하기' 버튼을 클릭하고 나오면 첨부파일이 삭제되는 것은 정상인지요???

파일 업데이트하는 경우에는 정상적으로 업데이트한 파일이 정상적으로 올라갑니다만...

답변 2

2

첨부파일이 있는 게시글을 수정시, 첨부파일 선택없이 수정하면,  기존 첨부파일을 삭제하지는 않지만, 디비에서 첨부파일 정보가 삭제되어 기존첨부 파일이 삭제된것 처럼 보입니다. 실제 폴더에는 기존첨부파일이 존재합니다.

            if "attachfile" in request.files:

                print("attachfile-yes") <<== 여기 실행됩니다.

                file = request.files["attachfile"]

                print("file: ", file)

                if file and allowed_file(file.filename): <<==여기서 튕겨서 아래부분은 실행되지 않음

                    filename = chekc_filename(file.filename)

                    file.save(os.path.join(app.config["BOARD_ATTACH_FILE_PATH"], filename))

                    print("filename", filename)

                    if data.get("attachfile"):

                        board_delete_attach_file(data.get("attachfile"))

if 조건문 위에서 , filename = None  처리한 부분때문에 몽고디비에서 첨부파일이름이 null 로 처리됩니다.

write(글작성시) 경우는 if "attachfile" in request.files: 처리해도 동작에는 문제가 없습니다.

그래서 아래 처럼 변경하면 해당 오류가 해결됩니다.

if "attachfile" in request.files: ==> if request.files["attachfile"]:

참고하시기 바랍니다.

덕분에 쉽게 해결하고 갑니다.

시간이 많이 지났지만, 너무 유용한 꿀팁이라서 고맙다는 말씀 꼭 드리고 싶습니다

감사합니다.

0

남박사님의 프로필 이미지
남박사
지식공유자

첨부파일 삭제 체크를 하지 않고 수정을 완료했을때 파일이 삭제되면 정상이 아닌걸로 보입니다만...

kimbarb님의 프로필 이미지
kimbarb

작성한 질문수

질문하기