微信小程序 获取本地图片并上传到服务器

需要用到微信小程序的API接口有:wx.chooseImage和wx.uploadFile;

wx.chooseImage(Object object)从本地相册选择图片或使用相机拍照

在微信文档也对该API进行了解析:

 示例:

    wx.chooseImage({
      count: 1,
      sizeType: ['original', 'compressed'],//图片尺寸:original:原图,compressed:压缩图
      sourceType: ['album', 'camera'],//图片来源:album:从相册选图,camera:使用相机
      success:(res)=> {
        console.log(res);
      }
    })

console.log(res);

 取res.tempFilePaths[0]为图片的本地路径;

wx.uploadFile(Object object)将本地资源上传到服务器。

从上面的chooseImage的res取得本地路径:res.tempFilePaths[0]

    wx.uploadFile({
      url: ${url},
      filePath: res.tempFilePaths[0],
      name: 'imageFile',
      header: { "Content-Type": "multipart/form-data" },
      success:(res)=>{
        const data = JSON.parse(res.data),//转换为对象
              imgSrc=data.data;//取已上传到服务器的图片地址
      }
    })

console.log(res);

这里就状态码是200OK,如果此时要保存图片地址的话,就取res.data.data,此时res.data是JSON字符串,用JSON.parse()转化为对象 就可以获得图片地址了;

res.data转化为对象后输出:

 直接取data就可以获取到图片地址啦~

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
微信小程序中,可以使用`<image>`标签来展示本地上传的照片。具体步骤如下: 1. 在`<input>`标签中设置`type`属性为`file`,用于调起手机的相册相机: ``` <input type="file" accept="image/*" bindchange="uploadImage" /> ``` 其中,`accept`属性用于限制上传的文件类型,这里设置为只能上传图片。`bindchange`属性用于绑定选择文件后的回调函数用于处理选择的文件。 2. 在相册相机选择或拍摄照片后,会触发`<input>`标签的`change`事件,可以在对应的回调函数获取选择图片,并将其展示出来。例如: ``` Page({ data: { imageUrl: '' // 用于存储图片路径 }, // 选择图片后的回调函数 uploadImage: function (e) { var that = this var file = e.detail.tempFiles[0] // 获取选择图片文件 wx.uploadFile({ url: '服务器地址', filePath: file.path, name: 'file', success: function (res) { // 上传成功后的处理 that.setData({ imageUrl: res.data // 将图片路径存储到data中 }) } }) } }) ``` 在上述代码中,`wx.uploadFile()`函数用于选择图片传到服务器,其中`url`参数为服务器地址,`filePath`参数为选择图片文件路径,`name`参数为上传文件的名称。上传成功后,可以在`success`回调函数中将图片路径存储到`data`中。 3. 在`<image>`标签中设置`src`属性,用于展示上传的图片: ``` <image src="{{imageUrl}}" /> ``` 其中,`{{imageUrl}}`为存储图片路径的变量名,根据具体情况动态赋值即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值