다음을 사용하여 플라스크 서버에 파일을 게시 할 때 원시 HTML을 사용하여 플라스크 요청 전역에서 파일에 액세스 할 수 있습니다.
<form id="uploadForm" action='upload_file' role="form" method="post" enctype=multipart/form-data>
<input type="file" id="file" name="file">
<input type=submit value=Upload>
</form>
플라스크에서 :
def post(self):
if 'file' in request.files:
....
Axios에서 동일한 작업을 시도 할 때 플라스크 요청 전역이 비어 있습니다.
<form id="uploadForm" enctype="multipart/form-data" v-on:change="uploadFile">
<input type="file" id="file" name="file">
</form>
uploadFile: function (event) {
const file = event.target.files[0]
axios.post('upload_file', file, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
위의 동일한 uploadFile 함수를 사용하지만 axios.post 메서드에서 헤더 json을 제거하면 플라스크 요청 객체의 양식 키에 문자열 값의 csv 목록이 표시됩니다 (파일은 .csv 임).
axios를 통해 파일 객체를 보내려면 어떻게해야합니까?
@Niklesh 예 오타 잘라 내기 및 붙여 넣기, 위에서 수정하고 코드에 큰 따옴표를 포함합니다.
—
돈 스마 이스
당신은 시도 않았다
—
Niklesh Raut
v-on:change="uploadFile"
으로 input
대신 form
태그?
@Niklesh 나는 동일한 결과를 얻습니다-데이터는 문자열로 전송되고 플라스크의 request.files가 아닌 request.form에 의해 선택됩니다.
—
돈 스마 이스