Sử dụng HTML thô khi tôi đăng tệp lên máy chủ bình bằng cách sử dụng như sau, tôi có thể truy cập tệp từ yêu cầu bình toàn cầu:
<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>
Trong bình:
def post(self):
if 'file' in request.files:
....
Khi tôi cố gắng làm điều tương tự với Axios, toàn cầu yêu cầu bình bị trống:
<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'
}
})
}
Nếu tôi sử dụng cùng một hàm uploadFile ở trên nhưng xóa tiêu đề json khỏi phương thức axios.post, tôi sẽ nhận được trong khóa biểu mẫu của đối tượng yêu cầu bình của mình một danh sách csv gồm các giá trị chuỗi (tệp là .csv).
Làm cách nào để nhận một đối tượng tệp được gửi qua axios?
v-on:change="uploadFile"
với input
thay vì form
thẻ?