当post大于4KB时,G-WAN MAX_ENTITY_SIZE问题



是否有人在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.centity_size.c示例,这些示例已通过1.7 MiB文件上传进行了测试。试试看。

我遇到了同样的问题。

根据我自己的测试,您可以对最多3663字节的文件进行POST,但无论MAX_ENTITY_SIZE值如何,任何3664字节及更大的POST都将返回404。不确定为什么要使用3663的任意限制。。。

应该可以编写一个自定义处理程序来解决这个问题,但这充其量只是一个麻烦。希望我们能尽快解决问题。

它生成HDL_HTTP_ERRORS。因此无法执行servlet。

相关内容

  • 没有找到相关文章

最新更新