收藏
回答

wx.uploadFile接口上传jpg图片, content-type类型错误

问题模块
API和组件


出现的问题:

   通过wx.chooseImage获取的图片(压缩或原图), 如果图片为jpg格式, 通过wx.uploadFile上传的图片的content-type类型为image/jpg, 正确类型是image/jpeg .


复现的步骤:

   选择图片, 图片是压缩的或者是jpg原图

wx.chooseImage({
   count: 1,
   sizeType: ['original', 'compressed'],
   sourceType: ['album', 'camera'],
   success: function (res) {
     var tempFilePaths = res.tempFilePaths
      that.setData({ cover: tempFilePaths})
   }
 })

   上传图片, 后台是微信优惠券的图片服务器

var path = this.data.cover

wx.uploadFile({

     url: '',
     filePath: path[0],
     name: 'image',
     header: {
       "Content-Type": "multipart/form-data;",
     },
     success: function (res) {
       var data = res.data
       console.log(res.data)
     }
   })

   抓包发现, 凡是jpg的图片的content-type都是image/jpg, 一般服务端都是以image/jpeg来处理jpg图片的, 导致图片上传失败

最后一次编辑于  2017-12-08  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

6 个回答

  • 梁瑞
    梁瑞
    2017-12-07

    我看了下, 标准的MIME的表里面是没有image/jpg的

    2017-12-07
    赞同
    回复
  • 梁瑞
    梁瑞
    2017-12-07

    http://www.w3school.com.cn/media/media_mimeref.asp

    2017-12-07
    赞同
    回复
  • 梁瑞
    梁瑞
    2017-12-07

    上传原图片, 如果原图片是jpeg上传成功, 压缩图片被转成了jpg, 上传不成功

    2017-12-07
    赞同
    回复
  • 梁瑞
    梁瑞
    2017-12-07

    如果使用postman等上传jpg就能上传成功, 它对jpg的图片设置的就是image/jpeg.

    2017-12-07
    赞同
    回复
  • 梁瑞
    梁瑞
    2017-12-07

    上传的微信卡券的服务器, 图片被拒绝了, 提示选的媒体类型是jpg, 并且jpg被拒绝了.  jpg的图片基本都是走的image/jpeg的

    2017-12-07
    赞同
    回复
  • Holyhulk
    Holyhulk
    2017-12-07

    服务器不能用image/jpg来处理么?

    2017-12-07
    赞同
    回复