Sử dụng .html liệu khi tôi gửi một tập tin vào một máy chủ bình bằng cách sử dụng sau đây tôi có thể truy cập tập tin từ yêu cầu bình toàn cầu:Ajax gửi một tập tin từ một hình thức với Axios
<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 yêu cầu bình toàn cầu là rỗ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 uploadFile f unction ở trên nhưng loại bỏ các tiêu đề json từ phương pháp axios.post Tôi nhận được trong các hình thức quan trọng của đối tượng yêu cầu bình của tôi một danh sách các giá trị chuỗi csv (tập tin là một .csv). Làm thế nào tôi có thể nhận được một đối tượng tập tin được gửi qua các trục?
@Niklesh vâng cắt typo và dán, tôi cố định nó ở trên, bao gồm dấu ngoặc kép trong mã. –
bạn đã thử 'v-on: change =" uploadFile "' với 'input' thay vì thẻ' form'? – C2486
@Niklesh Tôi nhận được kết quả tương tự - dữ liệu được gửi dưới dạng chuỗi và được tải lên bởi request.form không yêu cầu.files trong bình. –