# 上传 云储存或阿里云OSS

# 上传至unicloud云储存

# 注意,记得小程序需要加域名白名单 点击查看 (opens new window)

// 选择图片
uni.chooseImage({
  count: 1,
  sizeType: ['compressed'],
  success: function (res) {
    // 上传至 unicloud云储存
    vk.callFunctionUtil.uploadFile({
      title:"上传中...",
      filePath: res.tempFilePaths[0],
      suffix:"png", // 不传suffix会自动获取,但H5环境下获取不到后缀,但可以通过file.name 获取
      provider:"unicloud",
      success(res) {
       // 上传成功

      }
    });
  }
});

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 上传至 阿里云oss

// 选择图片
uni.chooseImage({
  count: 1,
  sizeType: ['compressed'],
  success: function (res) {
    // 上传至 阿里云oss
    vk.callFunctionUtil.uploadFile({
      title:"上传中...",
      filePath: res.tempFilePaths[0],
      suffix:"png", // 不传suffix会自动获取,但H5环境下获取不到后缀,但可以通过file.name 获取
      provider:"aliyun",
      success(res) {
       // 上传成功

      }
    });
  }
});

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 注意,记得小程序需要加域名白名单

# 还需要在app.config.js中配置

// 第三方服务配置
service:{
  // 阿里云oss配置
  aliyunOSS:{
    // 密钥和签名信息 (由于签名的获取比较麻烦,建议初学者使用上传到unicloud的方案,上传到阿里云OSS是给有特殊需求的用户使用)
    uploadData:{
      OSSAccessKeyId: "",
      policy:"",
      signature:"",
    },
    // oss上传地址
    action:"https://xxxxxxxx.oss-cn-hangzhou.aliyuncs.com",
    // 根目录名称
    dirname:"test",
    // oss外网访问地址,也可以是阿里云cdn地址
    host:"https://xxx.xxx.com",
    // 上传时,是否按用户id进行分组储存
    groupUserId:false,
    // vk.callFunctionUtil.uploadFile 是否默认上传到阿里云OSS
    isDefault:false
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# service.aliyunOSS 参数生成工具 点击下载 (opens new window)

导入项目后,修改项目根目录upload.js内的参数,然后运行index.html,随便上传一张图片,页面上会显示aliyunOSS参数配置

# 如下图所示

# 上传图片,并将图片记录保存到admin后台

// 选择图片
uni.chooseImage({
  count: 1,
  sizeType: ['compressed'],
  success: function (res) {
    vk.callFunctionUtil.uploadFile({
      title:"上传中...",
      filePath: res.tempFilePaths[0],
      file: res.tempFiles[0],
      needSave:true,
      success(res) {
       // 上传成功

      }
    });
  }
});

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 自定义云端图片保存路径

通过 cloudPath 参数可直接指定路径(需包含文件后缀名)

// 选择图片
uni.chooseImage({
  count: 1,
  sizeType: ['compressed'],
  success: function (res) {
    // 上传至 unicloud云储存
    vk.callFunctionUtil.uploadFile({
      title:"上传中...",
      filePath: res.tempFilePaths[0],
      cloudPath: "myPath/aa.png",
      success(res) {
       // 上传成功

      }
    });
  }
});

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18