“云函数API
在云函数中操作云存储文件(不是在前端),包括在云函数里上传、删除云存储文件。
uniCloud.uploadFile(Object uploadFileOptions)”
uniCloud 提供了在云函数(云对象)上传文件的 api,但是问题是在前端我发送 formData 到云对象,云对象解析不了 formData:
// 前端
const demo = () => {
uni.chooseImage({
success: (chooseImageRes) => {
const tempFilePaths = chooseImageRes.tempFilePaths
uni.uploadFile({
url: '.../demoObj/getData', // 这里没有把云对象地址显示完全
filePath: tempFilePaths[0],
name: 'file',
formData: {
user: 'test'
},
success: (uploadFileRes) => {
console.log(uploadFileRes.data)
}
})
}
})
}
<button @click="demo">选择图片</button>
我前端先使用 uni.uploadFile 上传 formData 到云对象,
// const dbJql = uniCloud.databaseForJQL()
module.exports = {
_before() {},
getData(params) {
return this.getHttpInfo()
}
}
这是云对象的代码,我去看过云对象的日志了,前端上传的 formData 没有在云对象日志里看到,
请求入参: {
"args": {
"path": "/getData",
"httpMethod": "POST",
"headers": {
"content-length": "27523",
"referer": "http://localhost:5173/",
"sec-fetch-site": "cross-site",
"x5-uuid": "be92c625275d956b89a0da729d3391f8",
"origin": "http://localhost:5173",
"x-client-ip": "61.141.0.123",
"sec-ch-ua-mobile": "?1",
"host": "fc-mp-cdbfa693-27a2-4406-ac75-bbc62899abe1.next.bspapp.com",
"content-type": "multipart/form-data; boundary=----WebKitFormBoundaryfKoV6B1ywvs18sB9",
"sec-fetch-mode": "cors",
"accept-language": "zh-CN,zh;q=0.9",
"x-forwarded-for": "61.141.0.123, 118.178.15.152, 123.57.117.186",
"accept": "*/*",
"x-real-ip": "61.141.0.123",
"sec-ch-ua": "\"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\", \"Google Chrome\";v=\"138\"",
"sec-ch-ua-platform": "\"Android\"",
"x-sinfo": "on",
"x-forwarded-by": "172.28.195.28:80",
"accept-encoding": "gzip, deflate, br, zstd",
"user-agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Mobile Safari/537.36",
"sec-fetch-dest": "empty"
},
"queryStringParameters": {
"user": "test"
},
"isBase64Encoded": false,
"body": ""
},
"requestId": "ac1cc31c1753254684600148774"
}
请求响应状态: success
这是云对象的日志,可以看到 content-type 的值是 formData,但是 formData 的数据不知道跑哪里去了,
所以我现在就觉得很奇怪,提供了云函数(云对象)上传文件的 api,但是我前端却没办法把文件上传到云函数(云对象)。
DCloud_云服务_Mal
前端不是使用uni-app开发的吗?
2025-07-23 16:54
1***@qq.com (作者)
回复 DCloud_云服务_Mal: 是使用uniapp开发的,云函数和云对象不是有url化吗?那云函数和云对象不就和普通java后端写的接口一样了吗?给一个接口地址,然后前端去调用,这样子是不是就是前后端分离的更开一点,这样子更合适一点,而不是说前端去写后端代码,那也就会出现一个要求嘛,前端要能往云函数和云对象写的接口传递数据,肯定包括文件的二进制数据,那这样子的话,刚刚我上面演示完之后,你会发现好像是做不到的
2025-07-24 00:52