首先最近的写一个微信小程序的项目中需要往服务器上传图片,小程序有专门的 wx.uploadFile()来上传图片,但是在这里采用的是 wx.request()实现。
具体步骤:
1.首先从手机中选择想要获取的图片进行上传。
1.1在这里要使用到一个 微信API wx.chooseImage,该API的功能就是从本地相册选择图片或使用相机拍照。
实例代码:
wx.chooseImage({
count: 1, //选择图片数量。
sizeType: [\'original\', \'compressed\'], //原图和压缩图。
sourceType: [\'album\', \'camera\'], //利用相机拍摄,从本地选择。
success(res) {
const tempFilePaths = res.tempFilePaths //图片的本地临时文件路径列表 (本地路径)
}
})
运行结果:
然后点击你想上传的图片进行上传即可。
1.2 完整实现
wx.chooseImage({
count: 1, // 设置最多1张
sizeType: [\'original\', \'compressed\'], //所选的图片的尺寸
sourceType: [\'album\', \'camera\'], //选择图片的来源
success(res) {
var team_image = wx.getFileSystemManager().readFileSync(res.tempFilePaths[0], "base64") //将图片进行base64编码。
wx.request({
url: \'https://www.hello.com/image\', //API地址
method: "POST",
header: {
\'content-type\': "application/x-www-form-urlencoded",
},
data: {
image: team_image,
},
success: function (reg) {
console.log(reg)
}
})
}
})
2.将选择的图片上传到后端,保存到服务器。
后端flask处理API请求:
@assignment_bp.route("/testimage",methods=[\'GET\',\'POST\'])
def testimage():
team_image =base64.b64decode(request.form.get("image")) #队base64进行解码还原。
with open("static/111111.jpg","wb") as f: #存入图片,存入地址为服务器中的项目地址。
f.write(team_image)
return json.dumps("ok")
3.检测是否上传成功。
3.1通过查看服务器中的对应文件查看
3.2如果有域名的话可以部署项目后利用URL进行访问