Flutter 上传图片一直不成功

公司最近开了新项目,使用flutter开发app。

其中有一个功能是把当前带有二维码的页面分享到微信中。

微信分享图片的接口需要传一个图片的url地址,页面上的二维码是动态生成的,所以需要先对页面截图再上传服务器,拿到返回的图片地址再进行分享。

整个流程一直到上传服务器的部分卡住了,上传接口一直报 “Content size exceeds specified contentLength on formdata upload”。

百度搜了这个报错信息,没有发现靠谱的回答,搭上梯子去墙外搜了一下,在dio这个包的github上发现了相同的issue,尝试了其中提到的几个方法:把dio的版本降到2.1.3,没能解决,想把版本升到3.0以上,但是项目的flutter版本不支持。

回复信息提到

 var t= await formData.asBytesAsync();  // Stream size.
 print(formData.length==t.length);  // Should be `true`

If formData.length is not equal to t.length, please upload the "audio.m4a" and I'll help you to check it.

于是我也试了试我代码中的这2个值是否相等,结果就能正常上传了。

经过断点测试,发现真正起效的是这一句“var t= await formData.asBytesAsync();”,至于为什么能解决这个问题,我也不知道,如果有大神了解,还请赐教!

posted @ 2019-10-09 15:34  KlllB  阅读(1518)  评论(0编辑  收藏  举报