$ http.post文件大小限制?当然看起来像

时间:2014-07-21 13:17:13

标签: javascript jquery angularjs http post

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

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

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

我主要想知道$http.post方法是否存在字节限制。我在其他任何地方找不到答案。

我应该打开我的文件内容,告诉服务器我正在开始上传,多次上传chuck到服务器,然后告诉服务器我什么时候完成?

2 个答案:

答案 0 :(得分:2)

傻傻的我......

因此,整个2.31 MB都会进入服务器,但我只是通过分配一个低于65K的缓冲区来截断文件内容,这是TCP / IP数据包的最大限制。简单地说,我只需要在重建数据包后使缓冲区大小动态化为传入数据包。感谢所有帮助人员。

答案 1 :(得分:1)

我在这个question的第三个答案中引用了这个:

  

也许你有一个&在您的内容变量中。之后的所有事情都会被剥夺。

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

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