zoukankan      html  css  js  c++  java
  • 众里寻他千百度,蓦然回首,那人却在灯火阑珊处:上传の方法

    0. 缘起

    之前做过一个fabric.js小画板,里面用到了上传图片作为画板底图的效果。但怎么本地上传至服务器,我还真不会。要用到,于是搜索了一波,但是发现那些搜索结果,大同小异地看起来都很麻烦,想到之前组长项目里也用到过类似效果,不如观摩观摩学习学习。

    1. 过程

    // template
            <el-upload
              class="upload-demo"
              drag
              :action="url"
              :auto-upload="true"
              :show-file-list="false"
              :on-success="onSuccess"
              :on-error="onError"
              :headers="headers"
              :before-upload="onBefore"
              accept=".xlsx, .xls"
            >
              <i class="el-icon-upload"></i>
              <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
            </el-upload>
    
     methods: {
        onSuccess(response) {
          if (response.success) {
            this.$message.success({
              message: "文件上传成功",
              duration: 1000,
            });
          } else {
            this.$message.error(response.message);
          }
          this.loading.close();
        },
        // 错误响应
        onError() {
          this.$message.error({
            message: "文件上传失败",
            duration: 1000,
          });
          this.loading.close();
        },
        // 准备阶段
        onBefore() {
          this.loading = this.$loading({
            lock: true,
            text: "文件上传中...",
            spinner: "el-icon-loading",
            background: "rgba(0, 0, 0, 0.7)",
          });
        },
    

    2. 想法

    导出直接就是点击下载,没啥好说的。
    ↑图样图森破了,导出更难。。。
    那么轻,那么重:图片下载与压缩包下载 - 乐盘游 - 博客园 (cnblogs.com)

    我擦,我竟然以为element的上传只能传图片,我是铁憨憨!

    3. 进阶

    3.1 如果需要传query

    直接在el-upload标签的action中,用模板字符串拼出来

                :action="`/xy/box/yinling/point/import?boxId=${boxId}`"
    
    

    3.2 如果头需要传别的参数

                :headers="getHeaders()"
    
    // Methods
        getHeaders() {
          return { boxId: this.boxId };
        },
    

    3.3 有name要求

    比如

    #请求参数 file:excelFile

     name="excelFile"
    

    3.4 总览

              <el-upload
                class="upload-demo"
                name="excelFile"
                :headers="getHeaders()"
                :action="`/xy/box/yinling/point/import?boxId=${boxId}`"
                :auto-upload="true"
                :show-file-list="false"
                :on-success="onSuccess"
                :on-error="onError"
                :before-upload="onBefore"
                accept=".xlsx, .xls"
              >
                <el-button type="primary">导入</el-button>
              </el-upload>
    
    人生到处知何似,应似飞鸿踏雪泥。
  • 相关阅读:
    java实现第六届蓝桥杯垒骰子
    java实现第六届蓝桥杯打印大X
    java实现第六届蓝桥杯打印大X
    java实现第六届蓝桥杯移动距离
    java实现第六届蓝桥杯移动距离
    java实现第六届蓝桥杯加法变乘法
    java实现第六届蓝桥杯加法变乘法
    java实现第六届蓝桥杯奇妙的数字
    将已有的Eclipse项目转化为Maven项目
    彻底理解JAVA动态代理
  • 原文地址:https://www.cnblogs.com/lepanyou/p/15740495.html
Copyright © 2011-2022 走看看