微信小程序如何将本地图片文件上传到服务器?wx.chooseImage& wx.uploadFile方法使用案例以及微信小程序如何获取input框的值。
2020-01-13 16:34
1971 查看
微信图片文件上传需要用到的两个API分别是:wx.chooseImage(选择本地文件) 和 **wx.uploadFile(上传文件)**将本地图片上传到服务器需要转换2次,首先是将本地的图片转换为服务器地址,其次是将这个服务器地址发送给后台接收。你从后台拿到一个方法a,你接收到这个方法a来处理图片,然后你再去后台拿到一个方法b,你接收到这个方法b来上传已经处理过的图片,就是这个意思。后台会给给一个文件上传的接口,专门用作本地文件和转换为服务器地址,例如:
除此之外, 还会给一个请求接口,也就是你需要发起请求,将这个图片提交给后台的接口(不放接口图片咯)
以上面的图片为例,一般在小程序里面有input输入框都会给外层包裹一个form表单,
<form bindsubmit='personIden'> <view class='uploadFilesWrap'> <view class="uploadTittle">上传工作证</view> <view class='uploadText1'> <text>*</text> <text>仅限PNG、JPG格式,大小限制在3M以内</text> </view> <view class='uploadText2'> <text>*</text> <text> 企业营业执照仅用于审核,不会向第三方透露,请放心上传</text> </view> <view bindtap='updata' class='myPhoto'> <image src='{{url+uploadImg}}' wx:if='{{uploadImg}}' mode='scaleToFill' class='myImg'></image> <image src='/img/person/index/14.png' wx:else class='myImg'></image> </view> </view> <button class='btn-upload' form-type='submit'> <text>提交审核</text> </button> </form> // 步骤:1,给from表单加一个bindsubmit='yourName', // 2,在提交处最好用button按钮 给button按钮一个form-type='submit' // 以上两步是成对出现的,配合使用的。
给图片框绑定一个函数,我这里绑定的updata,这个函数用于在你将本地的图片选中之后,把地址转换为服务器地址。我上面给form表单加了一个bindsubmit=‘personIden’,也相当于给form表单绑定的提交函数,只不过,这个函数有特殊功能,专门用作input框的提交。bindsubmit='personIden’函数是用来将所有输入框和图片地址(已经转换为服务器图片地址)的内容,全部提交给后台服务器保存。
按照这个思路,我们需要先处理图片,填写updata函数的内容:
- 首先需要给初始数据定义一个盛放处理之后的图片的容器:
const app = getApp() //声明引用全局变量 data:{ uploadImg: “ ”,//用于盛放下面我处理成服务器地址之后的图片 url: app.globalData.url //全局url }
- 用后台给的上传文件接口处理选中的本地图片
updata() { var that = this ; wx.chooseImage({ //微信封装的选择本地图片或相机拍照的API count : 1, //图片上传的数量 sizeType:[ 'original', 'compressed' ], //上传图片的合法值,原图|压缩图 sourceType:['album', 'camera'], //上传图片的方式 本地|相机 success(res) { //这里的成功请求执行的内容是我们的图片选择成功 对应的是wx.chooseImage的api成功 wx.uploadFile({ //微信封装的上传文件到服务器的API url: app.globalData.url+'/upload/index/upload', //域名+上传文件的请求接口 filePath: res.tempFilePaths[0], // tempFilePath可以作为img标签的src属性显示图片 服务器图片的路径 name: 'image', //上传到服务器的参数,自定义,我定义的是image header:{ "Content-Type":"multipart/form-data;charset=utf-8", "accept":"application/json", "Authorization":"Bearer .." }, // header非必填项,具体作用见官方文档、 success(res) { //这里的成功请求执行的内容是我们的图片上传到服务器成功 对应的是wx.uploadFile的api成功 console.log(res.data) var data = JSON.parse(res.data) //从打印结果可以看出来我们打印的对象里面是字符串类型,所以要用JSON.parse将里面的内容序列化转换为json格式 只针对我的这个数据,具体需不需要这一步要看打印的数据结果 that.setData({ uploadImg: data.url.filePath //将图片转换之后的服务器地址data.url.filePath(打印结果显示我的是data.url.filePath)推到data里面定义的空容器updataImg。html界面的显示也是用的这个路径,值得注意的是html里面要加上url域名 }) console.log(that.data.uploadImg) } }) } }) }
3.将这个文件提交给后台服务器保存
personIden(e) { var that = this; var uploadImg = that.data.uploadImg; //已经经过处理的图片赋值给uploadImg console.log ('form发生了submit事件,携带的数据为:',e.detail.value) //打印提交的内容 var val = e.detail.value; //获取此页的所有输入框的value值 val.Img_url = uploadImg //把图片文件路径追加给val,因为打印发现img_url不在val对象中,单独被拿出来了,img_url是后台接口参数 wx.request({ url: app.globalData.url + '/rc/User/personal_add', //请求提交的接口 header: { 'content-type': 'application/json' // 默认值 }, method: 'POST', //post请求方式 data: { val }, //将输入的输入框value和图片路径反馈给后台 success(res) { console.log(res) wx.showToast({ title: '提交成功', icon: 'success', duration: 2000 }) } }) }
以上就是如何将本地图片文件上传到服务器的具体操作详解了,其中也涉及了微信小程序如何获取到input的输入内容,上传到服务器。谢谢阅读。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 微信小程序上传图片wx.chooseImage和wx.uploadFile
- 小程序从本地相册选择图片或使用相机拍照wx.chooseImage上传后预览并可以识别图中二维码
- 为什么微信小程序使用wx.chooseImage上传 gif动态图被自动转成了 jpeg图片了?
- 微信小程序填坑:上传头像;wx.chooseImage,wx.uploadFile
- 小程序的图片上传wx.uploadFile及后台PHP接收文件并存储到服务器
- 微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
- PHP--解决微信小程序上传图片(wx.uploadFile)接口代码
- 微信小程序wx.getImageInfo()如何获取图片信息
- 微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
- # iOS 相册图片多选以及类似微信获取相册图片并使用AFN框架上传至服务器
- 微信小程序-从相册获取图片,视频 使用相机拍照,录像上传+服务器(nodejs版)接收
- 浏览器图片\文件上传到服务器 ajaxfileupload.js使用实例
- 微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
- 微信小程序常见问题->上传文件后如何在后台(php)获取文件名解决方法
- 微信小程序上传图片到服务器(java后台以及使用springmvc)
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
- 微信小程序文件上传java服务器端wx:uploadFile()
- [转]微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
- 微信小程序常见问题->上传文件后如何在后台(php)获取文件名解决方法