Python flask에서 파일을 업로드 할 경우 하나가 아닌 다수라면 어떻게 해야할까요? 클라이언트측 html과 서버측 python 코드를 아래에서 알아봅니다.
! upload.html
이때 중요한 부분은 form 태그의 속성으로 enctype을 추가하고 파일을 선택하는 input 태그의 name 속성 역시 배열로 여러개의 파일을 전달할 수 있도록합니다.
name="file[]"
html 코드는 이걸로 모두 끝났습니다. 버튼을 클릭하면 첨부된 파일이 서버에 함께 요청됩니다. 그럼 아래는 Python 코드로 전달한 파일을 받아 변수에 저장하는 방법입니다.
! Python 파일 멀티 업로드 예제 만들기이번에는 Python에서는 간단하게 입력폼의 파일만 받도록 코드를 작성해야합니다. 먼저 라우팅을 설정해 해당 url로 POST로 접근시 함수를 실행하게합니다.
위에 보시는 것 처럼 /uploadfile/이라는 url 주소로 파일을 보내면 변수 files에 값을 받는데 이때 flask 모듈의 request에서 해당 기능을 수행합니다. 즉 전달된 파일은 request 모듈의 files에 저장됩니다. 이를 다시보면 ..
getlist() 메소드를 사용하여 전달받은 파일을 변수로 저장하도록 하였습니다. 또한 file뒤에도 배열을 표시하는 []가 추가됩니다.
! 주의할 점앞에도 언급한 듯이 서버에서 배열로 전달받기 위해서는 html 입력폼에서 배열로 값을 전달해야합니다. 즉 input태그의 name 속성값의 뒤에 중괄호가 필요하니 꼭 추가하도록 합니다.
여기까지 멀티 업로드를 위한 방법을 알아봤습니다. 이제 파일 전송시 여러개를 보내서 전달 받을 수 있게되었습니다.
# Python flask에서 여러 파일 전송, 전달받기
아래 예제를 통하여 html과 python 코드를 예제를 통해 알아봅니다. 먼저 파일을 전송하기 위해 간단한 입력폼이 필요합니다.! upload.html
<form method="POST" enctype="multipart/form-data" action="/uploadfile/">
<input type="file" name="file[]" multiple="">
<button type="submit">Submit</button>
</form>
<input type="file" name="file[]" multiple="">
<button type="submit">Submit</button>
</form>
이때 중요한 부분은 form 태그의 속성으로 enctype을 추가하고 파일을 선택하는 input 태그의 name 속성 역시 배열로 여러개의 파일을 전달할 수 있도록합니다.
name="file[]"
html 코드는 이걸로 모두 끝났습니다. 버튼을 클릭하면 첨부된 파일이 서버에 함께 요청됩니다. 그럼 아래는 Python 코드로 전달한 파일을 받아 변수에 저장하는 방법입니다.
! Python 파일 멀티 업로드 예제 만들기이번에는 Python에서는 간단하게 입력폼의 파일만 받도록 코드를 작성해야합니다. 먼저 라우팅을 설정해 해당 url로 POST로 접근시 함수를 실행하게합니다.
@app.route("/uploadfile/", methods=["POST"])
def upload_file():
files = flask.request.files.getlist("file[]")
return ""
def upload_file():
files = flask.request.files.getlist("file[]")
return ""
위에 보시는 것 처럼 /uploadfile/이라는 url 주소로 파일을 보내면 변수 files에 값을 받는데 이때 flask 모듈의 request에서 해당 기능을 수행합니다. 즉 전달된 파일은 request 모듈의 files에 저장됩니다. 이를 다시보면 ..
flask.request.files.getlist("file[]")
getlist() 메소드를 사용하여 전달받은 파일을 변수로 저장하도록 하였습니다. 또한 file뒤에도 배열을 표시하는 []가 추가됩니다.
! 주의할 점앞에도 언급한 듯이 서버에서 배열로 전달받기 위해서는 html 입력폼에서 배열로 값을 전달해야합니다. 즉 input태그의 name 속성값의 뒤에 중괄호가 필요하니 꼭 추가하도록 합니다.
여기까지 멀티 업로드를 위한 방법을 알아봤습니다. 이제 파일 전송시 여러개를 보내서 전달 받을 수 있게되었습니다.
Author ByEnSSo
네. 도움이 되었어요
아니요. 별로에요