博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小程序OSS图片上传
阅读量:5901 次
发布时间:2019-06-19

本文共 2735 字,大约阅读时间需要 9 分钟。

图片上传加水印问题,代码如下!

chooseImage: function (e) {    var that = this;    wx.chooseImage({      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有      success: function (res) {        // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片        console.log(res)        let tempFilePaths = res.tempFilePaths;        let imgFile = res.tempFiles;        for (let i = 0; i < tempFilePaths.length;i++){          let n = tempFilePaths[i].lastIndexOf('.');          let type = tempFilePaths[i].substring(n);          wx.request({            url: 'https://www.********.com/api/plat/system/oss/signature?dir=wechatApp', //获取oss签名            success: function (res) {              console.log('签名', res.data.data)              if (res.data.status == 'SUCCESS') {                let post = res.data.data;                let foot1 = 'x-oss-process=image/resize,w_1080,h_1920,m_fill/watermark,type_d3F5LXplbmhlaQ,size_38,text_'                const aliyunFileKey = post.dir + that.guid() + type;                let showUrl = null;                wx.uploadFile({                  url: post.host, //上传到OSS                  filePath: tempFilePaths[i],                  name: 'file',                  formData: {                    'key': aliyunFileKey,                    'OSSAccessKeyId': post.accessKeyId,                    'policy': post.policy,                    'signature': post.signature,                    'success_action_status': '200'                  },                  success: function (res) {                    console.log("阿里云", res.statusCode)                    if (res.statusCode == 200){                      wx.showToast({                        title: '上传成功',                        icon:'success',                        duration:1200                      })                      if (that.data.encodeWord) {                        showUrl = post.host + '/' + aliyunFileKey + '?' + foot1 + that.data.encodeWord + that.data.urlFoot1;                      } else {                        showUrl = post.host + '/' + aliyunFileKey                      }                      let s = [showUrl]                      that.setData({                        files: that.data.files.concat(s)                      });                    }else{                      wx.showToast({                        title: '上传失败!',                        icon: 'none',                        duration: 1200                      })                    }                  }                })              }            }          })        }      }    })

wx.uploader中的name字段必须为file. 我这里是需要回显预览图片的时候需要图片有水印效果,才会去更改data中的files,这样也能做到批量上传的效果。

转载于:https://www.cnblogs.com/hjj2ldq/p/9067495.html

你可能感兴趣的文章
SQLite函数大全
查看>>
分享:R语言最好的IDE——RStudio
查看>>
IIS7下备份、还原站点配置
查看>>
java发送http的get、post请求
查看>>
Pseudo-random sequence generation
查看>>
Asp.net cookie的处理流程你真的知道吗?
查看>>
jQuery 1.9 beta1 发布,删除被废弃的 API
查看>>
C#,往线程里传参数的方法总结
查看>>
新建Web网站与新建Web应用程序的区别
查看>>
50个必备的实用jQuery代码段
查看>>
Windows程序设计00:为什么要学它
查看>>
打油诗 看《大上海》
查看>>
2013年第4周三波动
查看>>
JavaScript之常用调试方法
查看>>
unzip多文件同时解压
查看>>
行为的抽象即是接口(Interface)
查看>>
VS2008驱动开发环境配置
查看>>
配置GoldenGate源端Manager参数
查看>>
hdu 4502
查看>>
黑马程序员-JAVA基础-StringBuffer 类 和StringBuilder 类
查看>>