通过POST请求上传大型base64图像时丢失信息

时间:2016-11-01 20:05:00

标签: javascript php ajax

我正在尝试上传图片字符串(base64)并将其另存为图像服务器端。

问题在于,当我上传大图片(1200 px宽度jpg全质量)时,我会在上传时丢失一些信息。

我的代码可以工作,因为较小的图片上传并保存得很好。

我已经检查了我的ini php文件并且上传了最大文件大小,并且最大邮件数量足够高,以至于它真的不应该是问题(40米)。

我的信息会像这样传递:

  • 从手机摄像头获取base64图像数据(正常,可以显示图像客户端)

  • 将图像数据放入隐藏的表单字段(此时没有信息丢失)

  • 通过ajax POST请求发送数据(没有错误或任何内容)

  • 从php POST变量接收图像字符串(这是我丢失信息的地方)

- 上传前的strlen:5,253,100

- 上传后的strlen:524,288

  • 使用base64_decode保存图像(工作正常,可以正确保存较小的图像)

现在,当我上传更大的图片时,我没有收到任何错误。代码仍会吐出一张图片,但图片只是原始图片的前四分之一左右,其余部分是灰色的。

我发布了一些代码,但我非常有信心,因为在我提高图片大小之前,所有内容都运行良好。我肯定在POST请求期间的某些时候丢失了信息。

任何向我指出正确方向的提示都很可爱。谢谢你的阅读。

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。事实证明,当我把它放在文本框中时,我的数据被切断了。我不知道文本框有最大限制但在我的情况下文本框是以524288个字符截断我的数据。