请选择 进入手机版 | 继续访问电脑版
帖子
帖子
用户
博客
课程
显示全部楼层
14
帖子
0
勋章
71
Y币

[云开发] 【急】ajax上传图片到APICloud云服务3.0问题

[复制链接]
发表于 2021-6-22 20:36:57
大神,您们好~
请教一个关于ajax上传图片到APICloud云服务3.0的问题,我参考了平台上的很多帖子方法,都是片段式的说明,目前还是没解决,因此有如下几个问题,请帮忙大神们帮忙解答:

1、主要目的:通过api.ajax把api.getPicture()获取的图片,上传到APICloud云服务3.0中,以便之后读取图片用;


2、问题一:上传到APICloud云服务3.0上,是要建立一列为Object类型的列表用于接收图片吗(还是需要在APICloud云服务3.0端写某一段接收图片的代码?)还是设置为其他类型的列?


3、问题二:利用api.ajax   post方法上传

api.ajax({
                url: 'https://.......',
                method: 'post',
                headers: {
                "X-APICloud-AppId": appId,
                "X-APICloud-AppKey": appKey
                },
                files: {
                   file: ret.data               ( 1、file 这里,是直接写file  还是 写在APICloud云服务3.0上接收图片的列表名称? 2、ret.data 直接用api.getPicture()获取的这个路径就可以吗?)               
                }
        }, function(ret, err) {
         
        });
    }

以上就是我比较困惑的问题,不知道哪个步骤错了,一直上传不了,另外涉及到多图上传和图片压缩再上传,请指教一下,需要注意些什么?适合用什么样的方法更高效,感谢指导~


380
帖子
4
勋章
6
Y币
https://docs.apicloud.com/Cloud-API/sentosa

阅读文档上文件相关的部分

文件存储:
如果涉及到服务器端的数据存储,请开启文件存储,我们提供的第三方接口方便用户把数据直接上传到文件云存储中。该服务开启后会一直开启,不会关闭。

内置模块
包含上传七牛云,微信支付的相关接口

上传到七牛云接口
利用七牛提供的sdk封装的方式,减少用户开发量。使用时要在远程函数中调用,返回文件的大小,名称和地址,最大支持500M的上传。其中的req 参数是 HTTP request object。

14
帖子
0
勋章
71
Y币
技术支持-F 发表于 2021-6-22 23:10
https://docs.apicloud.com/Cloud-API/sentosa

阅读文档上文件相关的部分

非常感谢您的解答,我在创建远程函数的时候,平台的req参数的类型没req选项,那怎么选择呢?


1.png

另外,在app端上传的代码还是这样写对吧?
api.ajax({
                url: 'https://。。。。。/api/user/远程函数名称',
                method: 'post',
                headers: {
                "X-APICloud-AppId": appId,
                "X-APICloud-AppKey": appKey
                },
                files: {
                    file: red.data
                }
        }, function(ret, err) {
         
        });



14
帖子
0
勋章
71
Y币
本帖最后由 leo777 于 2021-6-23 12:28 编辑

我试了一下,还是不成功,您能告诉还有哪些关键点吗?比如:

1、APICloud云服务3.0:

     A、创建表格,比如列表为user的列表,其中一列列名为avatar,类型Object。

     B、在这个user表中,创建七牛云的远程函数(上传图片)

2、App代码

   A、body中:<img src='' 点击事件fnUploadImg()>...</img>

   B、在fnUploadImg方法中通过api.ajax上传图片
   
    api.ajax({
                url: 'https://...../api/users/uploadImg', (远程函数创建后的测试接口URL)
                method: 'post',
                headers: {
                "X-APICloud-AppId": appId,
                "X-APICloud-AppKey": appKey
                },
                values:{
                  name: 'newHelpImg'
                },
                files: {
                    file: ret.data
                }
        }, function(ret, err) {

        });

以上思路,请您看一下,是哪一步有误,导致上传不成功呢?
4
帖子
1
勋章
426
Y币
leo777 发表于 2021-6-23 11:13
我试了一下,还是不成功,您能告诉还有哪些关键点吗?比如:

1、APICloud云服务3.0:

req已添加到默认参数中,直接使用就可以
14
帖子
0
勋章
71
Y币
王森焱 发表于 2021-6-23 15:09
req已添加到默认参数中,直接使用就可以

关键现在还是上传不成功,我看这种对象储存一般要先创建储存空间,那这个远程函数相当于就是创建了储存空间对吧,另外,我现在这个代码有什么问题吗?还是需要引入某个模块才可以?请教一下您~
4
帖子
1
勋章
426
Y币
1. 开启文件存储 (云设置->文件存储)按钮
2. 添加自己的restful接口,代码类似
```js
{
  try {
    const info = await Models.api.qiniuFile.upload(req);
    return { status: 200, data: info, msg: "成功" };
  } catch (err) {
    return { status: 400, msg: err };
  }
}
```
其他细节自行处理
14
帖子
0
勋章
71
Y币
王森焱 发表于 2021-6-23 18:12
1. 开启文件存储 (云设置->文件存储)按钮
2. 添加自己的restful接口,代码类似
```js

谢谢 已解决~
您需要登录后才可以回帖 登录

本版积分规则