支付宝小程序上传图片

上传图片到oss,线上项目若需要提交图片,我现在使用oss保存

https://help.aliyun.com/document_detail/127260.html?spm=5176.11065259.1996646101.searchclickresult.6b617af5sowG8M

 可以使用支付宝小程序官方的云服务,好像是直接调用接口,目前公测免费

https://docs.alipay.com/mini/cloud-service/tcg57g

上传oss的一些细节,根据上面oss官方文档,下载应用服务器代码,unload.js中修改
accessid= '';
accesskey= '';
host = '';

host 字段格式为 bucket.endpoint    (如下面的zhufubao.oss-cn-beijing

https://zhufubao.oss-cn-beijing.aliyuncs.com

运行index.html获取policy,OSSAccessKeyId,signature,  

 my.chooseImage({
      chooseImage: 1,
      success: res => {
        const path = res.apFilePaths[0];
        console.log(path);
        my.uploadFile({
          url: 'https://zhufubao.oss-cn-beijing.aliyuncs.com',
          fileType: 'image',
          fileName: 'file',
          filePath: path,
          formData: {
            name: "${fileName}",
            //res.apFilePaths[0]是支付宝小程序调用chooseImage接口返回的图片地址,需要自己去修改,因为它返回的是  temp://+图片地址,可以分割得到图片地址,在存储的时候自定义存储路径,用host对应的bucket吓得文件路径拼接上图片地址
            //key: 'equipment-image/'+path.split('://')[1],
            key: res.apFilePaths[0], //上传到OSS的Object名称。如果名称包含路径,如a/b/c/b.jpg,则OSS会自动创建相应的文件夹。
            policy: '',
            OSSAccessKeyId: '',
            signature: '',
            success_action_status: 200 //如果不设置success_action_status,文件上传成功后则返回204状态码。
          },
          success: res => {
            my.alert({ title: '上传成功' });
          },
          fail: function(res) {
            my.alert({ title: '上传失败' });
          },
        });
      },
    });

上传到oss之后,图片如果是不可预览的,设置http头为image/png

原文地址:https://www.cnblogs.com/kingjordan/p/12027008.html