2016-05-12 36 views
0

我拉我的頭髮。使用plupload在php後端分塊。分塊(或不分塊),直到我使用文件> 100MB。請求實體太大的分塊plupload錯誤與plupload處理程序php的例子

我希望能夠使用文件,直到1Gb。繼續收到錯誤,然後再次嘗試重試,百分比再次爲0%並重新啓動。 也沒有預檢OPTION請求。我甚至通過使用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

+0

[Request Entity Too Large PHP]可能的重複(http://stackoverflow.com/questions/3718571/request-entity-too-large-php) –

+0

該主題的答案並未解決我的問題。 – JosFabre

回答

0

原來是在ngnix配置強制設置。 client_max_body_size被Plesk默認模板(默認/ domain/nginxDomainVirtualHost.php)強制爲128m。在推翻此設置時,Plesk返回了一個「重複」錯誤,最終導致我失去了this answer。製作一個自定義模板,更新虛擬主機。問題解決了!