何以解忧℡ 2022-05-07 19:25 采纳率: 50%
浏览 1710
已结题

关于uniapp里的uni-file-licker图片上传组件如何正确传到后台

本人第一次写uniapp,使用了uniapp的外部组件,uni-ui组件库,因为有多张图片上传需求,就使用了里面的图片上传组件uni-file-licker,我使用了以后前端页面可以显示出我所上传的图片,但是我不知道该如何去处理存值以及正确的向后台发起请求,相关文档并没有详细介绍该部分,网络搜索相关问题也大多是原生的上传方法并不能解决我的问题,所以在此发帖请求帮忙解决,如果有该组件使用实例最好不过。

  • 写回答

4条回答 默认 最新

  • qq_35583629 2022-05-14 22:16
    关注
    <uni-file-picker 
        v-model="imageValue" 
        fileMediatype="image" 
        mode="grid" 
        @select="select" 
        @progress="progress" 
        @success="success" 
        @fail="fail" 
    />
    <script>
    export default {
        data() {
            return {
                imageValue: []
            }
        },
        methods: {
            // 获取上传状态
            async select(e) {
                console.log('选择文件:', e)
                await this.uploadImg(res.tempFilePaths, 1);
            },
            async uploadImg(tempFilePaths, token) {
                console.log(token)
                if (!tempFilePaths.length) return;
                const path = tempFilePaths.pop();
                this.filePathsList.push({
                    url: path,
                    name: ""
                })
                const [err, {
                    data
                }] = await uni.uploadFile({
                    url: 'https://localhost/file/api/uploadtemp',
                    filePath: path,
                    name: 'file',
                    header: {
                        Authorization: token,
                        "Content-Type": "multipart/form-data",
                    }
                });
                console.log("err", err)
                console.log("data", data)
                if (!this.isGuid(data)) {
                    // upload fail
                    this.filePathsList.pop()
                    uni.showToast({
                        title: "上传失败",
                        icon: "none"
                    })
                } else {
                    // upload success
                    this.filePathsList[this.filePathsList.length - 1].name = data
                }
                this.uploadImg(tempFilePaths, token);
            },
    
            // 获取上传进度
            progress(e) {
                console.log('上传进度:', e)
            },
    
            // 上传成功
            success(e) {
                console.log('上传成功')
            },
    
            // 上传失败
            fail(e) {
                console.log('上传失败:', e)
            }
        }
    }
    </script>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月22日
  • 已采纳回答 5月14日
  • 创建了问题 5月7日

悬赏问题

  • ¥15 多个.nii合并为.nii.gz格式
  • ¥50 现在需要统计2023年全年 “签收时间(qssj)” 到 “提交时间(tjsj)” 小于半小时的业务量,但是要排除掉周末的时间,同时还要排除中午休息的时间。
  • ¥50 opencv模板匹配为何图像差别大仍然匹配数值高?
  • ¥15 如何成功完成主菜单和分菜单的代码编程C++
  • ¥15 怎样采集或者其它途径拿到全国最新个体工商户数据
  • ¥20 我是一名大学生,想学习java是自学还是报培训班呢
  • ¥15 pycharm该如何爬取网易云歌曲下的评论?
  • ¥15 java调用sap webservice问题
  • ¥20 如何完全复现何恺明resnet论文里的结果,有代码吗,获得论文中的结果(如下图)
  • ¥15 mysql如果表行行数小于1000条还需要分区吗