美元http.post文件大小限制?看起来确实是这样

$http.post File Size Limit? Sure looks like it

本文关键字:看起来 post http 文件大小 美元      更新时间:2023-09-26

我目前正在进行一个项目,该项目要求我使用AngularJS的$http.post将Base64编码的文件内容上传到服务器,文件内容将被转换并保存到远程存储库。

我上传的文件大约2.31 MB,但是服务器通过$http.post方式接收到文件内容后,文件内容只有68k !发生了什么事?

我很确定,因为我的文件内容是在Base64格式,我没有字符串终止的问题,由于嵌入的空,我吗?

我主要想知道$http.post方法是否有字节限制。我没有在别的地方找到我的答案。

我应该把我的文件内容切碎,告诉服务器我正在开始上传,对服务器进行多次上传,然后告诉服务器我完成了吗?

我真傻…

所以,整个2.31 MB都传递给了服务器,但是我只分配了一个略低于65K (TCP/IP数据包的最大限制)的缓冲区,从而截断了文件内容。很简单,我只需要在重构数据包之后,使缓冲区大小对传入数据包是动态的。谢谢大家的帮助。

我引用了这个问题的第三个答案:

也许你有一个&在content变量中。然后之后的所有内容都将被剥离。

所以也许在base64编码的文件中,单独在某个地方有一个&,第68000个字符切断了文件的其余部分,因为它认为附加了另一个请求。

例如:http://www.example.com?post=324b6bjgj5jhg&fgdhgtuhuf$_GET['post']显示为324b6bjgj5jhg而不是324b6bjgj5jhg&fgdhgtuhuf&让它认为还有另一个变量。我知道这是GET请求,但我猜POST也可能发生类似的事情。