直播软件搭建,uniapp 之使用 u-upload 组件来实现图片上传

直播软件搭建,uniapp 之使用 u-upload 组件来实现图片上传

一、官方示例用法

uview 1.0 u-upload 官方文档

 

1
<br><template><br><view><br><u-upload ref="uUpload" :action="action" :auto-upload="true" ></u-upload><br><u-button @click="submit">提交</u-button><br></view><br></template><br> <br><script><br>export default {<br>data() {<br>return {<br>action: 'http://www.example.com/upload',<br>filesArr: []<br>}<br>},<br>methods: {<br>submit() {<br>let files = [];<br>// 通过filter,筛选出上传进度为100的文件(因为某些上传失败的文件,进度值不为100,这个是可选的操作)<br>files = this.$refs.uUpload.lists.filter(val => {<br>return val.progress == 100;<br>})<br>// 如果您不需要进行太多的处理,直接如下即可<br>// files = this.$refs.uUpload.lists;<br>console.log(files)<br>}<br>}<br>}<br></script> 

分析

首先可以看到 <u-upload ref="uUpload" :action="action" :auto-upload="true" > 这里的 :auto-upload="true" ,这里是设置文件选中后自动上传,且上传路径为 data 当中定义的 action ,但是这里使用自动上传的时候,只能设置上传的 url 地址,如果业务当中有其他需求,比如请求头中需要携带 token … 将无法满足

因此可以选择将自动上传关掉 :auto-upload="false"

绑定选择完成后的回调函数,并在回调函数当中使用手动上传 @on-choose-complete="onChooseComplete"

 

二、关闭自动上传,使用手动上传的方式,代码

html 代码

 

1
<template><br><u-form :model="deviceInfo" ref="uForm"><br><view><br><u-form-item prop="imgUrl" label-width="10" :border-bottom='false'><br><u-upload @on-choose-complete="onChooseComplete" ref="uUpload" :custom-btn="true"<br>:show-upload-list="true" :auto-upload="false" :file-list="fileList" :show-progress="true"<br>:deletable="true" max-count="1"><br><view slot="addBtn" hover-class="slot-btn__hover" hover-stay-time="150"><br><image src="../static/img/addDevice.jpg" mode="aspectFill"></image><br></view><br></u-upload><br></u-form-item><br></view><br></u-form><br></template><br> 

 

js 代码

 

1
<script><br>// 这里引入的 Config 中配置了整个项目的接口地址<br>import Config from '@/core/config'<br>// 这里引入 store 是为了获取 token<br>import store from '@/store/index.js';<br>// 后端api地址<br>const uploadUrl = Config.get('apiUrl') + 'admin-api/infra/file/upload';<br>export default {<br>data() {<br>return {<br>// 预置上传列表<br>fileList: [],<br>deviceInfo: {<br>photoUrl: '',<br>}<br>}<br>},<br>methods: {<br>onChooseComplete(lists, name) {<br>const app = this;<br>uni.uploadFile({<br>// 这里是你上传图片的地址<br>// url: 'https://xxx.xx.xx.xx/admin-api/infra/file/upload',<br>url: uploadUrl,<br>filePath: lists[0].url,<br>name: 'file',<br>header: {<br>"Authorization": `Bearer ${store.getters.token}`<br>},<br>// 这个res是后端返回给你上传成功的数据里边一般会有上传之后图片的在线路径<br>success: (res) => {<br>app.deviceInfo.photoUrl = JSON.parse(res.data).data;<br>console.log(JSON.parse(res.data).data)<br>},<br>})<br>},<br>}<br>}<br></script> 

 

css 代码

 

1
<style scoped><br>.top {<br>width: 224rpx;<br>height: 224rpx;<br>margin: 0 auto;<br>margin-bottom: 50rpx;<br>margin-top: 50rpx;<br>image {<br>width: 224rpx;<br>height: 224rpx;<br>border-radius: 50%;<br>}<br>.tips {<br>font-size: 28rpx;<br>color: $u-type-primary;<br>}<br>}<br></style>

 

 以上就是直播软件搭建,uniapp 之使用 u-upload 组件来实现图片上传, 更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(264)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2022-03-17 直播平台源码,通知栏中显示滑动的进度条
2022-03-17 短视频平台搭建,指定视频中的某一帧做为视频的封面
2022-03-17 直播app系统源码,输入完内容后自动隐藏软键盘
点击右上角即可分享
微信分享提示