flask+axios进行前后端交互,前端进行文件上传,后端接收。后端创建了upload文件夹,与代码在同级目录上,现在前后端显示如下:


前端代码
<template>
<div>
<input type="file" ref="fileInput" @change="handleFileUpload">
<button @click="uploadFile">提交</button>
</div>
</template>
<script>
import axios from 'axios'
export default {
data(){
return{
file:null
};
},
methods: {
handleFileUpload(event) {
const file = event.target.files[0];
console.log(file.size)
if (file && (file.name.endsWith('.eqt')||file.name.endsWith('.EQT'))) {
// 执行上传逻辑,例如发送文件到服务器
console.log('上传文件:', file);
// 可以在这里调用接口、使用Axios等进行文件上传的操作
} else {
this.$message.error("请上传EQT文件") ;
console.error('请选择一个 .eqt 文件');
}
},
uploadFile() {
let formData = new FormData();
formData.append('file', this.file);
axios.post('http://localhost:5000/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
}
}
};
</script>
from flask import Flask, request
from flask_cors import CORS
from werkzeug.utils import secure_filename
import os
app = Flask(__name__)
CORS(app)
app.config['MAX_CONTENT_LENGTH'] = 1024 * 1024 * 1024
@app.route('/upload', methods=['POST'])
def upload_file():
if 'file' not in request.files:
return 'No file part', 401
file = request.files['file']
if file.filename == '':
print(file)
return 'No selected file', 402
filename = secure_filename(file.filename)
app_root = os.path.dirname(os.path.abspath(__file__))
upload_folder = os.path.join(app_root, 'upload')
print(os.path.join(upload_folder, filename))
file.save(os.path.join(upload_folder, filename))
return 'File uploaded successfully'
if __name__ == '__main__':
app.run()
