yangyue012345 2023-08-02 11:26 采纳率: 20%
浏览 12
已结题

flask+axios前端上传文件后端接收

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

img

img


前端代码

<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()
  • 写回答

2条回答 默认 最新

  • 二九筒 2023-08-02 13:56
    关注

    这儿判断写错了,你这个不能用in ,in判断的是key,不是value

    img

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月14日
  • 创建了问题 8月2日