0

有人遇到过 MAX_ENTITY_SIZE 的问题吗?我现在和这个斗争了很长一段时间。我希望我只是在做一些愚蠢的事情,或者有人找到了解决方案。

我在 Ubuntu 64 位最新版本上使用 G-WAN 4.2.7。

这是一个测试用例。只需在 textarea 上粘贴任何文本,然后单击提交。如果它小于 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 上测试过同样的问题。

4

3 回答 3

0

我遇到了同样的问题。

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

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

于 2013-02-14T02:45:13.737 回答
0

G-WAN v4.2.19 附带了经过1.7 MiB 文件上传entity.c测试的增强entity_size.c示例。试一试。

于 2013-02-20T07:53:25.303 回答
-1

它生成 HDL_HTTP_ERRORS。所以没有办法执行servlet。

于 2013-02-08T09:37:08.690 回答