图片上传有van-uploader组件可以用,将获取到的url通过上传接口(比如minio)
文件上传使用插件https://ext.dcloud.net.cn/plugin?id=1015可实现在app打开文件选择框的功能,在原有的基础上添加删除功能,非常好用。
多选上传只需要在页面里多写点js,将每次上传返回的信息存入数组中就可以了
查看效果https://www.bilibili.com/video/BV1J84y1Z7Wo/
在实际开发的时候遇到了点问题,后端的minio添加了鉴权(登录后才可以文件上传,请求头上需带上cookie字段,cookie字段中存入了SessionId(非token),但这个cookie是后端来操作的,登陆后后端会返回set_cookie,自动存入前端存储Cookies中,会在调用其他请求的时候自动在请求头带上cookie,而且前端是无法手动添加cookie的),看了下这个插件的代码,发现它本质上是使用new XMLHttpRequest()
new XMLHttpRequest()是比较原生的方法,wx.uploadFile、ajax等都是基于new XMLHttpRequest()来实现的,在使用wx.uploadFile请求数据的时候请求头有带cookie,使用这个插件的时候无法自动带入cookie。
在下方的I-file.vue中写有在不同环境下上传的方法(App,h5,wx)
我们遇到的问题是在app端调用接口,会返回登陆页面,于是后端把鉴权放开了,但是需要把用户信息传过去,在插件代码中统一添加userId,deptId等等,,,,(从locaStorage中取出用户信息)