未通过 AJAX POST 请求发送大尺寸图像的 base64(作为 FormData 参数)
Posted
技术标签:
【中文标题】未通过 AJAX POST 请求发送大尺寸图像的 base64(作为 FormData 参数)【英文标题】:Large size image's base64 (as FormData param) not sent via AJAX POST request 【发布时间】:2020-08-06 18:33:06 【问题描述】:我遇到了一个问题,当我以 Base64(大约 20 MB)作为 FormData 参数发送大尺寸图像时,AJAX POST 请求不起作用。如果小于 10 MB,则请求 FormData 参数可以正常工作。为什么会这样?
var formData = new FormData();
formData.append(“base64Image”, “<LARGE SIZE BASE64 STRING>”);
$.ajax(
url : "/api/extensions",// no i18n
method : "POST",//no i18n
processData : false,
contentType : false,
data : formData
...
);
【问题讨论】:
定义“不去”。 听起来有些服务器设置正在停止它,如果它始终失败> 10mb,请尝试***.com/questions/20249587/… Base64 请求参数如果约为 20 MB,则不会在浏览器的“网络”选项卡中发送。 @juju 这是客户端问题吧?浏览器甚至没有在请求中发送它。 啊我不知道除了性能之外还有限制客户端。 【参考方案1】:我认为这是服务器问题。不确定您使用的是什么服务器,但在 Payara 中,我认为他们会像这样配置允许的最大上传大小;
max-post-size-bytes
,也可以在管理控制台中配置,将其设置为 -1 将消除大小限制并接受任何请求
max-form-post-size-bytes
这不能在管理控制台中配置,只能通过 asadmin 命令
这仅适用于内容类型为 application/x-www-form-urlencoded 的请求,因此大多数表单文件上传都会忽略它”
来自here
编辑:从我在互联网上看到的关于这个确切问题的其他问题来看,有一些狡猾的服务器配置/php_ini 文件没有被正确解析,你可能有多个设置文件必须配置,但是对于struts,您可以尝试实现this 中的示例吗?另外,您确定您的配置有 100000000 字节而不是 10000000?
【讨论】:
我正在使用 Java Struts 2 好像你的回答可能是这样的:***.com/questions/4821334/… 我用我的代码编辑了这个问题。如果我尝试使用 application/x-www-form-urlencoded 而不是 multipart/form-data 请求,它是否有效? 不,多部分应该没问题,据我所知,Ajax 没有限制,格式也没有限制,因为我将它们用于大文件。所以它必须是别的东西 你看过这篇文章吗?没有看到服务器配置很难提供帮助。 ***.com/questions/19225881/…以上是关于未通过 AJAX POST 请求发送大尺寸图像的 base64(作为 FormData 参数)的主要内容,如果未能解决你的问题,请参考以下文章