vue 附件上传获取附近内容_Vue实现附件上传功能

本文介绍了如何在Vue中利用element-ui实现附件上传功能,包括限制文件个数、类型和大小,以及处理上传异常和自定义上传请求。通过HTML和JS代码展示了具体的实现方式,并提供了错误提示和文件移除功能。
摘要由CSDN通过智能技术生成

本文实例为大家分享了Vue实现附件上传的具体代码,供大家参考,具体内容如下

前言

前端 UI 是用的是 element-ui 的上传功能

本文主要记录下代码,方便下次复制粘贴

前端部分

HTML

limit: 限制文件个数 1 个

on-remove: 移除附件时的钩子函数,主要就 console 输出下

on-error: 用于处理上传异常后的处理,本人这主要用来关闭弹窗和全屏等待

file-list: 绑定附件

auto-upload: 禁止自动上传,true 的话选了文件就自动上传

http-request: 自定义上传文件请求方法,默认方法会与 mock 产生 XmlRequest 重新生成导致找不到文件问题,我注释了 mock 还是那样,没具体研究

action: 原上传文件的路径,由于使用了自定义上传文件请求,即 http-request,因此这个字段随便写就好,不写不行好像

ref="upload"

:limit="1"

:on-remove="handleRemove"

:on-error="onError"

:file-list="fileList"

:auto-upload="false"

:http-request="uploadFile"

action="https://www.easck.com/d/file/200528/243720200528190003"

class="upload-demo">

选取文件

支持上传 {{ strRebuild(fileType) }} 格式,且不超过 {{ fileSize }}M

JS

import { strRebuild, lastSubstring } from '@/utils/strUtil'

import { message } from '@/utils/message'

export default {

data() {

return {

// 附件列表

fileList: [],

// 允许的文件类型

fileType: ['xls', 'xlsx', 'pdf', 'doc', 'docx', 'txt', 'jpg', 'png', 'jpeg'],

// 运行上传文件大小,单位 M

fileSize: 10,

}

},

methods: {

// 清空表单

clear() {

// 清空附件

this.$refs.upload.clearFiles()

},

// 附件检查

// 检查附件是否属于可上传类型

// 检查附件是否超过限制大小

checkFile() {

var flag = true

var tip = ''

var files = this.$refs.upload.uploadFiles

files.forEach(item => {

// 文件过大

if (item.size > this.fileSize * 1024 * 1024) {

flag = false

tip = ' 文件超过' + this.fileSize + 'M'

}

// 文件类型不属于可上传的类型

if (!this.fileType.includes(lastSubstring(item.name, '.'))) {

flag = false

tip = ' 文件类型不可上传'

}

})

if (!flag) {

message('error', tip)

}

return flag

},

// 提交附件

submitUpload() {

if (this.checkFile()) {

console.log('上传附件...')

this.$refs.upload.submit()

} else {

console.log('取消上传')

}

},

// 自定义文件上传方法

uploadFile(file) {

// 把文件放入 FormData 进行提交

const param = new FormData()

param.append('files', file.file)

uploadFile(param).then(response => {

// TODO 一些关闭弹框,上传成功提示等

})

},

// 移除附件

handleRemove(file, fileList) {

console.log('移除附件...')

},

// 附件上传失败,打印下失败原因

onError(err) {

message('error', '附件上传失败')

console.log(err)

},

// 字符串重组

strRebuild(str) {

return strRebuild(str)

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值