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();”,至于为什么能解决这个问题,我也不知道,如果有大神了解,还请赐教!