파일을 불러오기 위해서는 조금 다른 명렁어를 입력해야 하며, 파일 처리를 위해 html폼에서 enctype을 변경해 주어야 한다.
html폼의 enctype변경
기본적으로 폼태그의 enctype을 지정하지 않을 시에는 디폴트값인 ‘application/x-www-form-urlencoded’로 간주되기 때문에 파일을 전송하고자 할 경우 꼭 enctype을 multipart/form-data로 지정해 주어야 한다. 또한 GET방식으로는 불러올 수 없기 때문에 method또한 POST로 설정해 주어야 한다.
request.files로 파일 불러오기
기존에 html폼에서 보낸 데이터를 불러올 때는 request.values 또는 request.form을 사용하였지만, 파일을 불러올 때는 request.files['name']를 사용하여 불러온다. 이는 파일명이 담겨있는 스트링객체가 아닌 파일객체이다.
파일명을 불러오고자 할 경우 ‘파일.filename’을 사용하면 된다.
file.save(경로)
파일을 실제로 서버에 업로드 즉 저장시키기 위해서는 파일객체.save("경로","파일명")를 사용한다.
파일경로로 이동
파일이 있는 경로를 url에 입력하게 되면 해당 이미지를 볼 수 있다. (즉, ‘서버ip/파일경로/파일명’ )이를 플라스크를 거쳐 경로를 변경하고 싶을 때는 return send_form_directory("경로","파일명")을 사용하면 해당 메서드의 @app.route(“경로”)에 접근했을 경우 해당 파일을 웹 상에 띄워주게 된다.