上传简历附件(el-upload)

这段代码展示了如何在前端实现一个简历上传组件,包括设置上传参数、限制文件类型和大小、处理上传成功和失败的回调,以及提供删除附件的功能。用户可以通过此组件上传PDF、DOC或ZIP格式的简历,并在上传前进行文件类型和大小的检查。
摘要由CSDN通过智能技术生成

<!-- 上传简历html部分 -->】

dataTime: 是上传附件时需要携带的参数,卸载dataTime里面

actionUrl是接口地址,需要拼接一下、如果自己之前配置的话(按照自己的接口,接口完整路径就可以)

caseImgUploadSuccess: 是上传文件成功

caseImgBeforeRemove: 点击删除附件的事件

caseImgBeforeRemove: 多次上传的提示

<el-upload class="upload-productImg" :file-list="fileList" :action="actionUrl" :multiple="false"
                            :limit="1" list-type="picture" :on-success="caseImgUploadSuccess"
                            :before-remove="caseImgBeforeRemove" :on-exceed="caseImgExceed" :data="dataTime">
                            <el-button size="small" type="primary" plain>+ 上传附件简历</el-button>
 </el-upload>
export default {
    name: "Recruit",
    components: {},
    data() {
        return {
            dataTime: { job_id: '', intention_job: '' },



            job_id: '',
            intention_job: '',
            timestamp: '',
         
            add: 'add',

            Title: '上传简历',
            open: false,
            // 附件列表
            fileList: [],
            // 允许的文件类型,可依据实际需求增加格式
            // fileType: ['xls', 'xlsx', 'pdf', 'doc', 'docx', 'txt', 'jpg', 'png', 'jpeg', 'zip'],
            fileType: ['pdf', 'doc', 'zip'],
            // 运行上传文件大小,单位 M
            fileSize: 10,
        }
    },
    created() {
        this.getData()
    },
    mounted() {

    },
    computed: {
        actionUrl() {
            return process.env.VUE_APP_BASE_API + '/wlwebsite_job/public/resumefile/'
        },
    },
    methods: {

        caseImgRemove(file, fileList) {
            this.form.caseImgFileList = [];
        },
        caseImgUploadSuccess(response, file, fileList) {
            this.timestamp = response.timestamp


            //上传成功才预览图片,上传失败就清空上传记录
            // this.$refs.upload-productImg.clearFiles();不清空,再次上传不了
            this.fileList = [...fileList].map(el => {
                // return { url: el.response.data.url }

            });
        },
        // 点击删除的时候
        caseImgBeforeRemove(file, fileList) {
            return this.$confirm(`确定移除缩略图?`);
        },
        // 多次上传的提示
        caseImgExceed(files, fileList) {
            this.$message.warning(`请删除已上传的案例缩略图文件再上传!`);
        },


        toLink() {
            window.open("https://www.hlycom.com/contact.html")
        },
      


        handleUpload() {
            this.title = '上传简历'
            this.open = true
        },
        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 = ' 文件类型不可上传'
                    this.clientOpen = false
                }
            })

            if (!flag) {
                message('error', tip)
            }
            return flag
        },

        // 提交附件
        submitUpload() {
            if (this.checkFile()) {
                console.log('上传附件...')
                this.$refs.upload.submit()
            } else {
                console.log('取消上传')
            }
        },


        // 移除附件
        handleRemove(file, fileList) {
            console.log('移除附件...')
        },

        // 附件上传失败,打印下失败原因
        onError(err) {
            message('error', '附件上传失败')
            console.log(err)
        },

        // 字符串重组
        strRebuild(str) {
            return strRebuild(str)
        }


    },
};

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值