收藏
回答

小程序怎么获取到file对象?

用了一个第三方api需要传图片给对方,但是不能用uploadFile接口 因为uploadFile必须要文件name参数,所以调用的request接口,在data里传通过chooseImage-->readFileSync获取到的ArrayBuffer数据,接口报错,对方说需要直接传file

看到社区中有帖子貌似可以https://developers.weixin.qq.com/community/develop/article/doc/000e002793c2008fad096cb7b5b013

可是npm依赖fs库 怎么都还是出错 求大神

回答关注问题邀请回答
收藏

3 个回答

  • Stephen
    Stephen
    05-29

    为什么非要在小程序端直接调第三方呢?不怕涉及安全问题?

    可以用 wx.uploadFile 先给后端,后端再给第三方,多方便,后端想怎么操作就怎么操作

    05-29
    有用
    回复 7
    • 尚尚
      尚尚
      05-29
      我是个人开发 需要借助一些第三方的能力 而且是不涉及隐私的图片
      05-29
      回复
    • 尚尚
      尚尚
      05-29回复Stephen
      有密钥的 应该还好吧 对方是比较知名公司 这方面暂时不做考虑
      05-29
      回复
    • Stephen
      Stephen
      05-29回复尚尚
      分分钟破解你的小程序,拿到秘钥疯狂调接口,你怎么办
      05-29
      回复
    • 尚尚
      尚尚
      05-29回复Stephen
      小程序破解这么简单吗 我不知道哎 我是做android开发的 这个接口是免费的 别人要搞我 也要我值得这么搞的时候吧 再说第三方服务端也会有相应恶意攻击的办法 没有这么简单这个问题和我问的关系不大  暂时不考虑这个问题
      05-29
      回复
    • Stephen
      Stephen
      05-29回复尚尚
      不是攻击第三方,你这个秘钥肯定有额度的对吧,我拿到秘钥一个循环,你的额度秒没,小程序破解也是分分钟的事
      05-29
      回复
    查看更多(2)
  • 祺爸💎
    祺爸💎
    05-29

    什么第三方这么牛逼,怎么不上天呢?

    05-29
    有用
    回复 1
    • 尚尚
      尚尚
      05-29
      第三方api这么规定的嘛 我们开发只能服从了 我是做android的小程序不熟 现在卡在npm依赖fs这里了
      05-29
      回复
  • 卢霄霄
    卢霄霄
    05-29

    wx.uploadFile接口固定的 文件以 form-data的方式传,body里放的是个form-data,你没法改变。看你说的,应该他们是body里是文件二进制流,还是多试试post接口,把文件用readFile读成流传过去。

    05-29
    有用
    回复 16
    • 尚尚
      尚尚
      05-29
      现在通过wx.getFileSystemManager.readFileSync拿到的是一个ArrayBuffer,跟第三方沟通这个对象不行,需要传file。帖子里有个回答连接,看起来通过依赖fs库调用fs.createReadStream可以 但是我用npm加fs的依赖总是报错
      05-29
      回复
    • 卢霄霄
      卢霄霄
      05-29回复尚尚
      他那个不是在小程序里,是云开发的后台上处理的
      05-29
      回复
    • 卢霄霄
      卢霄霄
      05-29回复尚尚
      如果你是文章里的格式,你还是应该用 wx.request 传form-data
      05-29
      回复
    • 尚尚
      尚尚
      05-29回复卢霄霄
      哦 这样 小程序不能直接添加fs依赖实现吗 感觉就是个文件的上传格式问题 每次调用云开发会有点麻烦 我是做Android的 不知道这样可不可以
      05-29
      回复
    • 卢霄霄
      卢霄霄
      05-29回复尚尚
      https://developers.weixin.qq.com/community/develop/article/doc/0000cc0e5bc5d093c6f8be17254c13
      这里刚好有教怎么拼。建议你先在别的平台上传,比如web,然后看看请求数据的格式,然后拼。当然,我觉得最好还是第三方支持wx.uploadFile
      05-29
      回复
    查看更多(11)
登录 后发表内容
问题标签