uniapp 上传

图片上传组件

使用组件实现图片上传功能,以下是相关的代码:

组件声明

fileList1: [],
// uviewui ui组件
<u-upload
    uploadText="上传打款凭证"
    :fileList="fileList1"
    @afterRead="afterRead"
    @delete="deletePic"
    name="1"
    :multiple="false"
    :maxCount="1"
></u-upload>

新增图片方法

afterRead(event) {
    this.imgUrl = '';
    let uploadTask = uni.uploadFile({
        url: this.$imgURL + '/api/upload/imgFile', // 仅为示例,非真实的接口地址
        filePath: event.file.url,
        name: 'file',
        formData: {
            'token': Q.getToken()
        },
        success: (uploadFileRes) => {
            this.imgUrl = JSON.parse(uploadFileRes.data).data;
        }
    });

上传过程处理

    // 上传中
    let lists = [].concat(event.file);
    let fileListLen = this[\`fileList${event.name}\`].length;
    lists.map((item) => {
        this[\`fileList${event.name}\`].push({
            ...item,
            status: 'uploading',
            message: '上传中'
        });
    });
    // 上传完成
    uploadTask.onProgressUpdate((res) => {
        if (res.progress === 100) {
            setTimeout(() => {
                let item = this[\`fileList${event.name}\`][fileListLen];
                this[\`fileList${event.name}\`].splice(fileListLen, 1, Object.assign(item, {
                    status: 'success',
                    message: '',
                    url: event.file.url
                }));
            }, 1000);
        }
        // 测试条件,取消上传任务。
        /*  if (res.progress > 50) {
            uploadTask.abort();
        }*/
    });
},

posted on 2022-09-09 21:24  完美前端  阅读(619)  评论(0)    收藏  举报

导航