收藏
回答

takePhoto后保存不了图片

问题模块 框架类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 takePhoto 微信iOS客户端 最高版本 最高版本

Page({


data: {

tempurl: ''

},



takePhoto() {

const ctx = wx.createCameraContext()

ctx.takePhoto({

quality: 'high',

success: (res) => {

this.setData({

tempurl: res.tempImagePath

});


console.log(this.data.tempurl);


wx.uploadFile({

url: 'https://。。。。/images/temp/',//此处为上传的路径

filePath: this.data.tempurl,

name: 'file',

success: function (res) {

var data = res.data;

console.log(res.statusCode);

//do something

}

})


}

})

},

error(e) {

console.log(e.detail)

},


})



此为代码

用takePhoto拍照后返回了一个tempImagePath,用此路径可以在页面上展示出图片,没问题。但上传图片状态码返回403是为什么?


最后一次编辑于  2018-03-06  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 欧阳
    欧阳
    2018-03-07

    wxfile://tmp_3这种格式的图片,服务端能识别吗?

    2018-03-07
    赞同
    回复
  • 无序柠檬
    无序柠檬
    2018-03-07

    找到原因了,是腾讯云上的代码不行,但是用开发者工具上的代码一开始能直接上传图片,但部署上去后server端的代码报     SDK 配置文件(/data/release/sdk.config.json)不存在    

    看到有人写:


    在腾讯云的微信小程序-开发者工具方案中,开发环境和生产环境均为 wafer2 解决方案,且均为自动部署,当你已经在开发环境和生产环境都开发好并完成调试之后,又开通了 wafer 解决方案,那么问题来了,如何把开发者工具方案迁移到 wafer 解决方案?


    问题1:

    在开通 wafer 解决方案的时候,腾讯云已经做了初始化工作,有 client 和 server 端的 demo,但是 demo 均为 wafer1,如果 client 不变,使用之前调试好的开发者工具方案的代码,把 server 的代码上传覆盖至业务服务器的 /data/release/php-weapp-demo , 然后 client 请求 server 接口,会报错: SDK 配置文件(data/release/sdk.config.json)不存在。

    解决办法:将 /etc/qcloud/sdk.config 复制过来

    [业务服务器]

    cp /etc/qcloud/sdk.config /data/release/sdk.config.json




    但是/etc/qcloud没有这个目录啊,其它地方也没找到。还在研究中

    2018-03-07
    赞同
    回复