• 技术文章 >web前端 >前端问答

    vue文件上传不能大于10mb怎么实现

    藏色散人藏色散人2023-01-29 14:31:24原创59

    vue文件上传不能大于10mb的实现方法:1、创建“index.vue”;2、设置结构为“<el-form :model="form" class="form" ref="ruleForm" :rules="rules" label-width="120px">”;3、通过逻辑代码“methods: {beforeUpload(file) {...}”实现判断文件大小即可。

    本教程操作环境:Windows10系统、vue3版、DELL G3电脑

    vue文件上传不能大于10mb怎么实现?

    vue中,Upload上传组件el-upload的使用-zip格式,大小不超过10M & store中获取和保存token

    效果

    42ed33742b1269e3eb5bf2a00bb17fc.jpg

    代码

    index.vue

    结构
     <el-form :model="form" class="form" ref="ruleForm" :rules="rules" label-width="120px">
        <el-form-item label="上传程序包:" prop="fileName">
            <el-upload :action="upload.url" :on-success="onSuccess" :on-error="onError" :headers="upload.header" :beforeUpload="beforeUpload">
                <el-button type="mini">上传</el-button>
                zip格式,大小不超过10M
            </el-upload>
        </el-form-item>
        <el-form-item>
            <el-button type="primary" @click="onSubmit">立即添加</el-button>
            <el-button @click="backToList">取消</el-button>
        </el-form-item>
    </el-form>
    逻辑
    <script>import store from '@/store/index';export default {
      data() {
        return {
          upload: {
            url: `${App.apiConfig.service}/dcp-manage/dcp/compile/manage/service/editor/version/upload`,
            header: {
              token: store.state.token        },
            resData: {}
          },
          form: {
            nameDesc: '',
            age:''
          },
          rules: {
            nameDesc: [
              { required: true, message: '不能为空', trigger: 'blur' }
            ],          
            fileName: [
              { required: true, message: '不能为空', trigger: 'blur' }
            ]
          }        
        }
      },    
      methods: {
        beforeUpload(file) {
          const sizeLimit = file.size / 1024 / 1024 > 10
          if (sizeLimit) {
            this.$message.warning('上传文件大小不能超过 10MB!')
          }
          const fileFamart = file.name.split('.')[file.name.split('.').length - 1];
          if (fileFamart !== 'zip') {
            this.$message.warning('必须上传zip格式的文件!')
          }
          return !sizeLimit && fileFamart === 'zip'
        },
        onSuccess(data) {
          this.form = {
            ...this.form,
            ...data.data  // 把上传文件添加到form中
          }
          this.$message.success('上传成功!');
        },
        onError() {
          this.$message.error('上传失败!');
        },
        // 立即添加
        onSubmit() {
          this.$refs.ruleForm.validate(valid => {  // 校验form表单
            if (!valid) return false;
    
            ajax.post('cs_addVersion', this.form).then(res => {
              this.$message.success('新增成功!');
              this.backToList();  // 新增成功后返回
            }, err => {
              this.$message.error('新增失败!');
            });
          });
        },
        // 取消
        backToList() {
          this.$router.back();
        }      
      }}
    存储

    src\store\index.js

    /*
     * @Descripttion:
     * @version:
     * @Author:
     * @Date: 2022-06-04 09:34:23
     * @LastEditors: Please set LastEditors
     * @LastEditTime: 2022-06-04 11:20:26
     */import Vue from 'vue';import Vuex from 'vuex';Vue.use(Vuex);// 状态const state = {
      token: sessionStorage.getItem('token'),
      userInfo: JSON.parse(sessionStorage.getItem('userInfo')),}// mutations用来操作stateconst mutations = {
      // 保存token
      SAVE_TOKEN (state, token) {
        sessionStorage.setItem('token', token);
        state.token = token;
      },
      // 保存用户相关信息
      SAVE_USERINFO (state, userInfo) {
        sessionStorage.setItem('userInfo', JSON.stringify(userInfo));
        state.userInfo = userInfo;
      },}export default new Vuex.Store({
      state,
      mutations})
    推荐学习:《vue视频教程

    以上就是vue文件上传不能大于10mb怎么实现的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Vue 文件上传
    上一篇:vue单选选不上怎么办 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • vue可以做同步吗• vue 文件上传报错怎么办• vue获取不到id属性怎么办• 怎么使用vue实现柱形图
    1/1

    PHP中文网