【问题标题】:Request Entity Too Large error on chunked plupload with plupload-handler-php example使用 plupload-handler-php 示例在分块 plupload 上请求实体太大错误
【发布时间】:2016-09-08 07:46:30
【问题描述】:

我正在拔头发。在 php 后端使用 plupload 和分块。在我使用大于 100mb 的文件之前,分块(或非分块)一直很好。

我希望能够使用 1Gb 之前的文件。不断收到错误,然后重试开始,百分比再次为 0% 并重新启动。 也没有预检选项请求。我什至使用 node-pluploader 制作了一个快速的 NodeJS 后端,它可以处理块,但存在同样的问题和错误(尽管确实发送了预检选项)。

任何建议将不胜感激

其他 Apache 指令

LimitRequestBody 0

PHP 设置

file_uploads          On
max_file_uploads          20
max_execution_time          3600
memory_limit          640M
post_max_size          600M
upload_max_filesize          500M

js

var uploader = new plupload.Uploader({
    runtimes : 'html5,silverlight,html4',
    browse_button : 'pickfiles',
    url : '<?php echo SITE_URL; ?>admin?sub=upload',
    silverlight_xap_url : '<?php echo SITE_URL; ?>lib/Moxie.xap',
    multi_selection : false,
    max_retries: 10,

    filters : {
        max_file_size : '1024mb',
        chunk_size: '10mb',
    },

    init: {

        FilesAdded: function(up, files) {
            plupload.each(files, function(file) {
                $('#document-file').html(file.name);
            });
        },

        UploadProgress: function(up, file) {
            $('#spinner-progress').html( " " + file.percent + "%" );
        },

        Error: function(up, err) {
            console.warn("Error #" + err.code + ": " + err.message);
        },

        UploadComplete: function(up, files) {
            console.log(files[0]);
        }
    }
});

uploader.init();

上传后台

<?php
require_once(LIB.SLASH."PluploadHandler.php");

PluploadHandler::no_cache_headers();
PluploadHandler::cors_headers();

if (!PluploadHandler::handle(array(
    'tmp_dir' => UPL_TMP_PATH,
    'target_dir' => UPL_TMP_PATH
))) {
    die(json_encode(array(
        'OK' => 0,
        'error' => array(
            'code' => PluploadHandler::get_error_code(),
            'message' => PluploadHandler::get_error_message()
        )
    )));
} else {
    die(json_encode(array('OK' => 1)));
}

我使用的是未更改的plupload-handler-php example

【问题讨论】:

标签: php file-upload plupload


【解决方案1】:

原来是 ngnix 配置中的强制设置。 client_max_body_size 被 Plesk 默认模板 (default/domain/nginxDomainVirtualHost.php) 强制为 128m。在否决此设置时,Plesk 返回一个“重复”错误,最终将我转向this answer。制作自定义模板,更新虚拟主机。问题解决了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 2018-05-20
    • 2011-04-12
    • 2012-11-14
    • 2014-12-28
    • 1970-01-01
    • 2011-10-20
    相关资源
    最近更新 更多