由于我用的接口,在修改内容的时候,只支持PUT方法,而uniapp提供的上传文件的的方式,只有POST方法,求大神解惑

土鸡同学
- 发布:2019-12-20 00:00
- 更新:2022-08-19 10:31
- 阅读:4713
请问 uni-app 如何使用put方法上传文件
分类:uni-app
5 个回复
kl_____ - ?????
兄弟这个问题解决了吗?
orange123456 - 80后IT男
可以考虑将文件数据转成ArrayBuffer,再使用put
初学者123
不是数据类型的问题吧?是 uni.uploadFile用的是指定的 post方法,而存储服务用的都是 put 方法
2021-01-18 12:16
初学者123 - 80后IT男
同问,这个问题解决了吗?
[已删除]
社区真的太不活跃,找个问题,都找不到答案
深海智行
见此问题,必自醒之。
三年了竟无人回答,三年了我竟未回答。
翻看了文档,并未发现可以直接使用的方法,不过能使用 webview+xhr 来实现,如果其他人有更好的方法也请不吝赐教。
2021-11-25 15:18
[已删除]
回复 深海智行: 我用uni.choseimage传递的文件,让xhr来上传也是失败。你是怎么做的
2021-11-25 16:09
深海智行
回复 [已删除]: App 还是 H5?如果别人猜错了请及时纠正。
2021-11-25 16:37
深海智行
回复 [已删除]: 你说的失败是怎么失败?
2021-11-25 16:39
深海智行
回复 [已删除]: 我最初的回答是以 App 端为假设的,因为 H5 连 webview 都不必用,直接可以用 xhr 上传。
2021-11-25 16:40
[已删除]
回复 深海智行: 我在uniapp嵌入h5页面,用webview进行加载,使用uni.choseimage选择图片后,把文件传到h5.使用xhr进行文件put上传。通过查看上传情况,发现文件并没有上传成功
2021-11-25 16:54
[已删除]
回复 深海智行: 我通过plus转换成file对象,传递到h5后,进行上传,文件也是没有上传上去。对比查看了,使用<input type='file'/>后,发现,打印出来的对象,uniapp是[Object,Object],而input标签的文件对象是[Object,File],后者是可以上传到oss,前者无法上传上去
2021-11-25 16:57
深海智行
回复 [已删除]: 这不扯淡么,plus 怎么能转换成 file 对象?
2021-11-25 17:37
深海智行
回复 [已删除]: 这不扯淡么,什么叫“uniapp是[Object,Object]”,uniapp 是分 App 和 H5 的,你在 H5 里调用才是 File,你在 App 里调用就是 Object
2021-11-25 17:39
[已删除]
回复 深海智行: plus.io.resolveLocalFileSystemURL(filePath, function(entry) {})并没有在扯淡,这个把本地路径转为file对象。
2021-11-25 18:01
[已删除]
回复 深海智行: 什么叫“uniapp是[Object,Object]”,麻烦你认真看一下。我说的H5里用input标签返回的是File对象,uniapp用uni.choiseimage,没有返回File对象。所以我通过plus转换了一下。跟你说的扯淡不扯淡,并没有多大关系。
2021-11-25 18:03
[已删除]
回复 深海智行: 另外的。我当然知道返回的是obj对象。由于我使用xhr的时候,并不能把obj上传上去。所以我才想赚成file对象。
2021-11-25 18:04
[已删除]
回复 深海智行: xhr.send(file);就是这个file。我要怎么让uniapp选择的图片可以上传上去。
uni.chooseImage({
count: 1,
sizeType: ['origubak', 'compressed'],
sourceType: ['camera'],
success: res => {
console.log("camera:", JSON.stringify(res))
if (this.accessoryList.length + res.tempFiles.length > 10) {
uni.showToast({
title: "最多只能选择10个文件",
position: center
})
} else {
this.accessoryList = this.accessoryList.concat(res.tempFiles)
}
}
})
我是直接把集合传递过去了。
2021-11-25 18:12
[已删除]
回复 深海智行: 真tmd傻逼。老子用这个方法已经弄好了。你这个白痴
2021-11-29 18:11
[已删除]
回复 深海智行: 就这逼样,还tmd教育领域。脑残吧
2021-11-29 18:11
深海智行
回复 [已删除]: 二批,帮你让人后悔
2021-11-29 18:17
深海智行
回复 [已删除]: 一边骂论坛不活跃,一边将回答你问题的人追着骂,你吃饱了撑的到人家别的回复下面去骂?还私信骂?已经举报,希望早点处理掉你这种垃圾。
2021-11-29 18:21
h***@icloud.com
Uniapp 通过 get 请求获取文件字节流后,再使用PUT请求上传文件到 OBS (临时URL授权上传方式)。没有想的那么复杂。