是否有人在MAX_ENTITY_SIZE方面遇到此问题?我已经和这个斗争了很长一段时间了。我希望我只是在做一些愚蠢的事情,或者有人找到了解决办法。
我在Ubuntu 64位最新版本上使用G-WAN 4.2.7。
这是一个测试用例。只需在文本区域粘贴任何文本,然后单击提交。如果小于4KB(或小于3.2KB),它将正常工作。如果它大于4KB,它将返回未找到的404,但它应该可以工作,因为我将MAX_ENTITY_SIZE设置为200KB。
#include "gwan.h" // G-WAN exported functions
#include <string.h>
int main(int argc, char *argv[])
{
xbuf_t *reply = get_reply(argv);
int *entity = (int*)get_env(argv, MAX_ENTITY_SIZE);
char *text = NULL;
get_arg("stext=", &text, argc, argv);
if(text) // Check if text exist.
xbuf_xcat(reply, "Text: %s<br/><br/>%d", text, strlen(text));
static char form[] =
"<form method="post">"
"<textarea name="stext"></textarea><br/>"
"<input name="button" type="submit" value="Submit" />"
"</form><br/>Entity Size: %d";
xbuf_xcat(reply, form, *entity);
return 200;
}
不要忘记增加MAX_ENTITY_SIZE限制:
int init(int argc, char *argv[])
{
int *entity = (int*)get_env(argv, MAX_ENTITY_SIZE);
*entity = 200 * 1024;
return 0;
}
更新:
在Ubuntu 10.10上测试了相同的问题。
G-WAN v4.2.19附带了增强型entity.c
和entity_size.c
示例,这些示例已通过1.7 MiB文件上传进行了测试。试试看。
我遇到了同样的问题。
根据我自己的测试,您可以对最多3663字节的文件进行POST,但无论MAX_ENTITY_SIZE值如何,任何3664字节及更大的POST都将返回404。不确定为什么要使用3663的任意限制。。。
应该可以编写一个自定义处理程序来解决这个问题,但这充其量只是一个麻烦。希望我们能尽快解决问题。
它生成HDL_HTTP_ERRORS。因此无法执行servlet。