Flask - Html 파일/이미지 전송

Flask - Html 파일/이미지 전송

반응형

지금은 페이지에서 파일을 업로드하고 서버에 저장하는 작업을 진행해보자.

파일 선택 - 업로드의 간단한 페이지이니 따로 html을 만들기보단

직접 return에 html을 작성하자

@app_fun.route('/file_upload') def file(): return ''' '''

위와 같은 화면이 나온다.

파일을 선택해서 제출하게되면 form action의 url로 post 방식으로 데이터를 전달한다.

파일을 담아서 던져줘야하기때문에 enctype = "multipart/form-data" 를 명시해주자.

같은 url에 get / post를 이용해서 다른 기능을 구현해보자.

@app_fun.route('/file_upload',methods = ['GET','POST']) def file(): return ''' '''

methods가 추가된 것을 볼 수 있다.

전달된 파일은 request.files로 전달되고,

ImmutableMultiDict([('file', )])

이렇게 전달된다.

우리는 file을 담아 저장하면 되니 아래와 같이 바이트로 읽은 뒤 with open을 이용해서 저장하자.

@app_fun.route('/file_upload',methods = ['GET','POST']) def file(): if request.method == 'POST': file = request.files['file'] f = file.read() name = file.filename with open(name,'wb') as F: F.write(f) return redirect(main) return ''' '''

반응형

from http://kkiho.tistory.com/23 by ccl(A) rewrite - 2021-11-18 12:00:51