ColdFusion HTTP POST大字符串

时间:2012-02-21 06:15:52

标签: coldfusion

是否有人注意到如果您尝试发布超过1,000,000个字符的字符串,它只是不包含请求字段?

...并且不会扔()!

例如

<cfscript>
var h = new http( url = "http://...", method = "post" );
h.addParam( type = "formField", name = "a", value = repeatString("a",5000) );
h.addParam( type = "formField", name = "b", value = repeatString("b",1000000) );
h.addParam( type = "formField", name = "c", value = repeatString("c",1000001) );
var p = h.send().getPrefix();
writeDump( var = p, abort = true );
</cfscript>

&#34; a&#34;和&#34; b&#34;字段存在于收件人页面的表单范围内。

&#34; c&#34;田野不见了!

ColdFusion 9,0,1,274733 + chf9010002.jar,Mac OS X 10.6.8,Java 1.6.0_31

修改:现在按预期工作了!

不确定发生了什么变化?我的cf管理员配置保持不变。我能想出的唯一可能的候选人是最近的Apple Java更新。可能是吗?

2 个答案:

答案 0 :(得分:1)

您可能需要指定

ENCTYPE = “多部分/格式数据”

答案 1 :(得分:1)

这是CF管理员中的设置。

在Coldfusion 9中(此设置已存在一段时间,但在其他版本中可能存在):

点击“服务器设置”组进行展开,点击“设置”链接(顶部链接)。在设置页面上:

发布数据的最大大小100 MB(默认) 限制可在单个请求中发布到服务器的数据量。 ColdFusion拒绝大于指定限制的请求。

有趣的是,你达到了10万的限制;听起来像有人因为“字节”计算而变得懒散。 :)无论如何,我会尝试修改这个设置。

仅供参考:除非您将数据源设置为允许“长文本缓冲区(chr)”大于64,000的默认限制,否则您将遇到类似数据插入/更新数据截断的问题。