我正在开发 Web 应用程序,其中以一种形式使用tinyMCE 编辑器。应用程序的用户使用此tinyMCE 输入字段来保存屏幕截图和注释。这是事实,无法轻易撤销。
问题是,当有人粘贴到大屏幕截图或太多屏幕截图或其他内容时,应用程序不会在提交时保存它,而是给出错误 400 错误请求。此外,当我在另一个输入字段中添加一些额外的输入时,它也可以工作。这意味着它一定是单个输入字段的某种限制。
我试图达到它仍然有效的最高限制,并且它接近 4 000 000 个字符 - 这可能是更多的字节。
我已经尝试搜索 html 输入字段的一些限制和tinyMCE 限制,但发现没有任何帮助。
我还尝试增加 ASPNET 应用程序启动时的表单限制:
services.Configure<FormOptions>(options =>
{
//Set the limit
options.MultipartBodyLengthLimit = limit;
});
有人知道是什么原因造成的吗?
编辑: 我已经尝试了以下应用程序配置:
builder.Services.Configure<FormOptions>(options =>
{
// Set the limit to 128 MB
options.MultipartBodyLengthLimit = 134217728;
});
builder.Services.Configure<IISServerOptions>(options =>
{
// Set the limit to 128 MB
options.MaxRequestBodySize = 134217728;
});
builder.WebHost.ConfigureKestrel(serverOptions =>
{
// Set the limit to 128 MB
serverOptions.Limits.MaxRequestBodySize = 134217728;
});
builder.Services.Configure<KestrelServerOptions>(options =>
{
// Set the limit to 128 MB
options.Limits.MaxRequestBodySize = 134217728;
});
解决方案
我没有放弃谷歌搜索,发现我可以设置单个表单值的大小:
builder.Services.Configure<FormOptions>(options =>
{
// Set the limit to 128 MB
options.MultipartBodyLengthLimit = 134217728;
options.ValueLengthLimit = 134217728;
});
第二行选项设置解决了问题。
我也在堆栈溢出上找到了解决方案,令我惊讶的是我第一次尝试寻找答案时没有看到它。