当前位置:首页 > 微信小程序上传图片

微信小程序上传图片

发布于 2018-04-11 阅读 1169 次 微信小程序 CSS3 移动端H5

一、页面WXML

  1. <view class="weui-uploader__bd">
  2. <view class="weui-uploader__files">
  3. <block wx:for="{{imageList}}" wx:for-item="image">
  4. <view class="weui-uploader__file">
  5. <image class="weui-uploader__img" src="{{image}}" data-src="{{image}}" bindtap="previewImage"></image>
  6. </view>
  7. </block>
  8. </view>
  9. <view class="weui-uploader__input-box">
  10. <view class="weui-uploader__input" bindtap="chooseImage"></view>
  11. </view>
  12. </view>
  13. </view>
  14. <view class="l-btn" bindtap="upload">发布需求</view>

二、选择图片

  1. data:{
  2.   imageList:[]
  3. },
  4. chooseImage: function () {
  5. var that = this
  6. wx.chooseImage({
  7. count: 6,
  8. success: function (res) {
  9. that.setData({
  10. imageList: res.tempFilePaths
  11. })
  12. }
  13. })
  14. },

三、上传

**小程序一次只能上传一张图片,所以写了一个递归去上传,里面的判断没好好写,大概就是个思路,欢迎拍砖**

  1. upload:function(){
  2. var i = 0, demand_id='',uploadFiles = function(){
  3. // console.log(i,demand_id)
  4. if (i == self.data.imageList.length) {
  5. sig = false;
  6. wx.redirectTo({ url:'../square/square?demand_id=' + demand_id });
  7. return;
  8. }
  9. wx.uploadFile({
  10. url: app.globalData.ajaxurl + 'api/demand/push',
  11. filePath: self.data.imageList[i], // 通过chooseImage获取到的文件临时列表
  12. name: 'file', //文件键名(后台通过此名字获得文件数据)
  13. formData: formdata, //二外数据
  14. complete:function(res){
  15. if(typeof res.data == 'string'){
  16. res.data = JSON.parse(res.data)
  17. }
  18. i++;
  19. if (res.statusCode == 200) {
  20. if (res.data.status == 200 && i==1) {
  21. formdata.demand_id = res.data.data.demand_id;
  22. if(!demand_id){
  23. demand_id = formdata.demand_id;
  24. // console.log(demand_id)
  25. }
  26. uploadFiles();
  27. }
  28. }else{
  29. wx.showModal({
  30. title: '失败',
  31. content: '请求失败,请重试'
  32. })
  33. sig = false;
  34. return;
  35. }
  36. if(i>1){
  37. uploadFiles();
  38. }
  39. }
  40. });
  41. }
  42. uploadFiles();
  43. }
  44. }