编程随笔 编程随笔
  • 前端
  • 后端
  • 星球项目
  • 开源项目
  • 海康AGV
  • 四向车
  • 工具类
  • 项目仓库

    • 部署仓库 (opens new window)
    • 代码仓库 (opens new window)
  • vuepress插件

    • 自动生成导航栏与侧边栏 (opens new window)
    • 评论系统 (opens new window)
    • 全文搜索 (opens new window)
    • 选项卡 (opens new window)
    • 自动生成sitemap (opens new window)
  • 自主开发插件

    • 批量操作frontmatter (opens new window)
    • 链接美化 (opens new window)
    • 折叠代码块 (opens new window)
    • 复制代码块 (opens new window)

liyao52033

走运时,要想到倒霉,不要得意得过了头;倒霉时,要想到走运,不必垂头丧气。心态始终保持平衡,情绪始终保持稳定,此亦长寿之道
  • 前端
  • 后端
  • 星球项目
  • 开源项目
  • 海康AGV
  • 四向车
  • 工具类
  • 项目仓库

    • 部署仓库 (opens new window)
    • 代码仓库 (opens new window)
  • vuepress插件

    • 自动生成导航栏与侧边栏 (opens new window)
    • 评论系统 (opens new window)
    • 全文搜索 (opens new window)
    • 选项卡 (opens new window)
    • 自动生成sitemap (opens new window)
  • 自主开发插件

    • 批量操作frontmatter (opens new window)
    • 链接美化 (opens new window)
    • 折叠代码块 (opens new window)
    • 复制代码块 (opens new window)
  • 知识点

  • 代码调试

  • vue2

    • vue-element-admin使用
    • el-upload封装
    • 文件上传
      • 1.自动上传
      • 2. 手动上传
      • 3. 上传前更改文件名
    • mavon-editor局部引入
    • vuex使用
  • vue3

  • react

  • typescript

  • 前端
  • vue2
华总
2023-08-25
0
0
目录

文件上传原创

# 1.自动上传

<el-upload
  class="upload-demo"
  :on-success="handleSuccess"  //上传成功后的回调
  :before-upload="beforeUpload"
  action="/api/file/upload" //上传地址
  data                      // 请求参数
  accept=".jpeg, .jpg, .svg, .png, .webp"
  multiple
>
  <img :src="imgUrl" v-if="flag" style="width: 100%" />
  <i class="el-icon-upload"/>
  <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
  <div class="el-upload__tip" slot="tip" style="color:red">只能上传jpeg, jpg, svg, png,
    webp文件,且大小不超过1M
  </div>
</el-upload>
        
<script>
export default {
  data() {
    return {
      data: {
          "biz": user_avatar
      }
    }
  }
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# 2. 手动上传

<el-upload
  class="upload-demo"
  :before-upload="beforeUpload"
  :http-request="upload" //手动上传
  drag
  action="#" //手动上传随遍填,不可为空
  accept=".jpeg, .jpg, .svg, .png, .webp"
  multiple
>
  <img :src="imgUrl" v-if="flag" style="width: 100%" />
  <i class="el-icon-upload"/>
  <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
  <div class="el-upload__tip" slot="tip" style="color:red">只能上传jpeg, jpg, svg, png,
    webp文件,且大小不超过1M
  </div>
</el-upload>

async upload() {
      const formData = new FormData()
      formData.append('file', this.file)
      formData.append('biz', 'user_avatar')
      await changeAvatar(formData).then(res => {
        this.flag = true
        this.form.avatar = res.data
        this.imgUrl = res.data
      })
    },
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 3. 上传前更改文件名

/**
 先获取到源文件的后缀名,然后新建一个文件,将文件名改为时间戳加后缀名,防止名称重复,最后把新文件作为参数进行上传
**/
beforeUpload(file) {
      const fileExtension = file.name.split('.').pop().toLowerCase()
      const timeStamp = new Date().getTime()
      const copyFile = new File([file], `${timeStamp}` + '.' + fileExtension)
      this.file = copyFile
    },
1
2
3
4
5
6
7
8
9
#前端
上次更新: 2024/01/14 16:27:31
el-upload封装
mavon-editor局部引入

← el-upload封装 mavon-editor局部引入→

最近更新
01
element-plus多文件手动上传 原创
11-03
02
TrueLicense 创建及安装证书 原创
10-25
03
手动修改迅捷配置 原创
09-03
04
安装 acme.sh 原创
08-29
05
zabbix部署 原创
08-20
更多文章>
Copyright © 2023-2024 liyao52033
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式