vue文件上传

<template>
  <div>
    <el-form :model="formData" ref="uploadForm" label-position="right" label-width="80px">
      <el-form-item label="模板名称" prop="templateName">
        <el-input v-model="formData.templateName"></el-input>
      </el-form-item>

      <el-form-item label="上传文件" prop="file">
        <el-upload
          action="/api/upload"
          :on-success="handleUploadSuccess"
          :before-upload="beforeUpload"
          :auto-upload="false"
        >
          <el-button type="primary">点击上传</el-button>
        </el-upload>
      </el-form-item>

      <el-form-item>
        <el-button type="primary" @click="submitForm">提交</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      formData: {
        templateName: '',
        file: null,
      },
    };
  },
  methods: {
    handleUploadSuccess(response, file, fileList) {
      // 文件上传成功后,后端返回的文件路径
      this.formData.file = response.filePath;
    },
    beforeUpload(file) {
      // 这里可以加一些文件上传前的验证逻辑
      console.log('beforeUpload', file);
    },
    submitForm() {
      // 提交表单逻辑
      this.$refs.uploadForm.validate((valid) => {
        if (valid) {
          // 发送表单数据至后端保存到数据库
          this.saveFormDataToDatabase();
        } else {
          this.$message.error('表单验证失败!');
        }
      });
    },
    saveFormDataToDatabase() {
      // 此处可以使用axios等发送请求将表单数据保存到数据库
      console.log('保存到数据库', this.formData);
      // 示例:axios.post('/api/saveFormData', this.formData).then(response => {});
    },
  },
};
</script>

<style>
/* 样式可以根据实际需求自行调整 */
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值