收藏
回答

据我在网上查询到的结果,上传图片到自己的服务器就没人成功过,这是什么原因。

问题模块
API和组件

uploadImage: function () {

    var that = this

    wx.chooseImage({

      success: function (res) {

        var tempFilePaths = res.tempFilePaths

        wx.showToast({

          title: '识别中,请稍候',

          icon: 'loading',

          duration: 2000

        })

        console.log(tempFilePaths[0])

        wx.uploadFile({

          url: 'https://www.hanqi86.wang/uploads/WX/',

          header: {

            'content-type': 'multipart/form-data'

          },

          filePath: tempFilePaths[0],

          name: 'file',

          formData: {

            'user': 'test'

          },

          success: function (res) {

            console.log("上传成功");

            console.log(res.data)

            wx.hideToast()

            var data = JSON.parse(res.data)

            if (!data.attributes) {

              that.setData({

                userInfo: {

                  avatarUrl: data.url,

                  tips: '未识别到颗粒'

                }

              })

              return

            }

            const genders = {

              'Male': '帅哥',

              'Female': '美女'

            }

            that.setData({

              userInfo: {

                avatarUrl: data.url,

                tips: '一位' + data.attributes.age.value + '岁的' + genders[data.attributes.gender.value]

              }

            })

            //do something

          },

          fail: function (res) {

            console.log("上传失败" + res.data);

            wx.showToast({

              title: '上传失败',

              icon: 'loading',

              duration: 2000

            })

          }

        })


        console.log("完成");

        wx.showToast({

          title: '识别完成',

          icon: 'loading',

          duration: 2000

        })

      }

    })

  }


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

14 个回答

  • song
    song
    2017-04-11

    首先wx.chooseImage获取tempFilePaths 之后调用 wx.uploadFile就OK  功能是好用的

    2017-04-11
    赞同
    回复
  • 追梦的人(IT大叔一枚)
    追梦的人(IT大叔一枚)
    2017-04-11

    您看您的小程序中的服务器域名有没有设置上传对应的域名,很多时候会忽略这一点.

    单图片很容易,多图片就麻烦些了.

    2017-04-11
    赞同
    回复
  • 回梦無痕
    回梦無痕
    2017-04-11

    我的成功案例

    upload_face:function()

      {

        var _this=this;

        wx.chooseImage({

          success: function(res) {

            wx.showToast({

              title: '加载中',

              icon: 'loading',

              duration: 10000

            })

            var tempFilePaths = res.tempFilePaths;

            wx.uploadFile({

              url: 'https://upload.****.com/miniapp/image', 

              filePath: tempFilePaths[0],

              name: 'file',

              formData:{

              uid: lib.getuid()

              },

              success: function(res)

              {

                //do something

                wx.showModal({

                          title: '提示',

                          content: '上传成功'

                })

              },

              fail:function()

              {

                wx.showModal({

                          title: '提示',

                          content: '上传失败'

                })

              }

            })

          }

        })

      },


    2017-04-11
    赞同
    回复
  • 麦琪
    麦琪
    2017-04-13

    个人实操经验,主要还是后端的问题,前端只要按照例子copy然后加点自己的data数据就行了。

    2017-04-13
    赞同
    回复
  • Panda
    Panda
    2017-06-07

    我的还是没有解决掉,谁有好的例子,能否一看

    2017-06-07
    赞同
    回复
  • JVM
    JVM
    2017-06-15

    这个图片上传的功能,前台我已经试了很多次了,都没有成功,我用的是java做后台,怎么接受上传上来的图片呢?

    2017-06-15
    赞同
    回复
  • UI-雪鹰
    UI-雪鹰
    2017-07-17

    后端接收不到数据是为什么呢! vb.net的 前端formData的数据后台,后台完全接收不到!为什么?

    2017-07-17
    赞同
    回复
  • Panda
    Panda
    2017-07-17

    注意两个命名是否一致

    2017-07-17
    赞同
    回复
  • UI-雪鹰
    UI-雪鹰
    2017-07-17

    哪个命名, 是前端的formData 和 后端的 formData么

    2017-07-17
    赞同
    回复
  • UI-雪鹰
    UI-雪鹰
    2017-07-17

    我再问一句这个前端请求的数据是这个formData吧!而后台获取这个formData有什么要求么?

    2017-07-17
    赞同
    回复