上传文件 上传图片

 

auto-upload是否自动上传文件
show-file-list是否显示已上传文件列表

有了这个就不需要写接口 将文件传到后端 不是通过axios发送文件了

action请求 URL

  :file-list="fileList" 当状态改变触发on-change文件信息就会在fileList

file-list / v-model:file-list默认上传文件
on-change文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用

<el-upload

                     :auto-upload="false"

                     :show-file-list="false"

                     accept=".xlsx, .xls"

                     action="/import/student"

                    :file-list="fileList"

                    :on-change="onChange"

                    :on-success='successFn'

                    ref="uploadRef"

                >                

               <el-button type="primary" v-if="!fileName">选择文件</el-button>

              <el-button type="primary" v-else @click.prevent.stop="submitFile">导入文件</el-button>

           </el-upload>

const fileList = ref([]);

const submitFile=()=>{

  uploadRef.value.submit()//触发外部方法 手动上传文件

}

---------------------------------------------------------------------------------------------------------------------------------

  <el-form-item label="更换封面" prop="file">

              <!-- limit 允许上传数量 auto-upload是否自动上传-->

              <el-upload

                v-model:file-list="coverInfo.file"

                :auto-upload="false"

                :limit="1"

                accept=".png,.jpg"

              >

                <el-button type="primary">选择图片</el-button>

                <template #tip>

                  建议: 课程封面大小建议上传1125*633,不超过5M,格式为.jpg,.png

                </template>

              </el-upload>

            </el-form-item>

 <el-button type="primary" @click="submitQuit">确定</el-button>

const submitQuit = () => {

    // 提交封面信息 通过rules验证

    coverFormRef.value.validate(async (value) => {

      if (value) {

        let formData = new FormData();

        let coverInfoValue = coverInfo.value;

        // 有要传的图片地址时候 (flie有值)

        if (coverInfoValue.file.length) {

          // 下面的append就是将文件类型的数据与普通类型进行结合

          // 有文件类型需要手动提交 这里是图片需要formdata就是将表单数据进行整理 整理到可以让那个后端解析的程度

          //                                       文件信息

          formData.append("file", coverInfoValue.file[0].raw);

        }

        formData.append("description", coverInfoValue.description);

        formData.append("courseName", props.course.courseName);

        const { data } = await reviseCover(formData);//reviseCover是接口 将要改变的文件发给后端

        if (!data.code) {

          // 成功

          ElMessage.success(data.txt);

          isDrawer.value = false;

          activeName.value = "first";

          emit("change");

        } else {

          ElMessage.error(data.txt);

        }

      }

    });

  }

};

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值