先上效果图:

 上传后:

 页面:

<el-upload :file-list="fileList" class="upload-demo" action="接口"
multiple v-model="ruleForms.upload" accept=".pdf" :before-upload="changeFiles"
 :on-change="handleChanges">
     <el-button type="primary">选择文件</el-button>
          <template #tip>
             <div class="el-upload__tip">
                  仅允许上传一个文件,仅限pdf格式
             </div>
           </template>
</el-upload>

我这里做个限制,仅限上传一个pdf文件,如果不需要可以去掉,更多api请参考官方upload上传官方文档

js部分:

const fileList = ref<UploadUserFile[]>([]);
const handleChange = (file, fileList) => {
    console.log(file, fileList);
    ruleForm.upload = fileList

    //限制文件数量,此处设置限制1条
    if (fileList.length > 1) {
        fileList.splice(0, 1);
    }
};
const changeFile = (file, fileList) => {
    console.log('file', file, fileList);
    if (file.type !== 'application/pdf') {
        ElMessage.error('只能上传pdf格式的文件');//限制文件类型
        return false;
    } else {
        let param = new FormData();
        param.append('file', file);
        console.log(param);
        axios({
            method: 'POST',
            url: '上传接口',
            data: param
        }).then((response) => {
            console.log(response); //查看接口返回的数据
        }, function (response) {
            console.log("错误信息:" + response)
        });
    }
};

完结,撒花~

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐