带有nginx上传模块和分块上传的空白POST

时间:2014-08-12 02:32:02

标签: nginx upload http-post

我使用nginx upload module接受PHP应用程序的大型上传。我在this blog post之后配置了nginx(根据我的需要进行了修改)。

这是我的nginx配置的适用部分:

server {

    # [ ... ]

    location /upload {
        set $upload_field_name "file";
        upload_pass /index.php;
        upload_store /home/example/websites/example.com/storage/uploads 1;
        upload_resumable on;
        upload_max_file_size 0;
        upload_set_form_field $upload_field_name[filename] "$upload_file_name";
        upload_set_form_field $upload_field_name[path] "$upload_tmp_path";
        upload_set_form_field $upload_field_name[content_type] "$upload_content_type";
        upload_aggregate_form_field $upload_field_name[size] "$upload_file_size";
        upload_pass_args on;
        upload_cleanup 400-599;
        client_max_body_size 200M;
    }
}

在客户端JavaScript中,我使用8MB块。

通过这种配置,我可以上传任何一块或更小的文件。但是,当我尝试上传任何一个以上块的文件时,我从服务器获取的每个中间块的响应都是空白的,最后一个块触发了对PHP应用程序的调用而没有任何传入的POST数据

我错过了什么?

1 个答案:

答案 0 :(得分:1)

事实证明,@Brandan的博客文章实际上遗漏了一个重要指令:

upload_state_store /tmp;

我补充说,现在一切都按预期工作。