2015-04-28 70 views
0

當我嘗試上載16.9 MB大小的MP4視頻,使用AJAX異步發佈到PHP文件控制檯觸發一個錯誤說:POST http://website.com/proc_vids.php網:: ERR_EMPTY_RESPONSE無法通過Ajax郵政發送的base64視頻PHP

我知道這個問題與PHP memory_limit有關,因爲當我將其設置爲200 MB時,這一切都很好,但是當我將其更改回100 MB時,會發生此錯誤。

我甚至無法將POST發送到PHP變量,因爲一旦發出ajax post調用,它甚至會在服務器端(PHP)執行任何操作時觸發錯誤。這裏是AJAX郵編:

var proc = 1; 
video = document.getElementById('preview_video').src; 
    $.ajax({ 
     'async': true, 
     'type': "POST", 
     'global': false, 
     'dataType': 'json', 
     'url': "proc_vids.php", 
     'data': {proc: proc, video: video} 
    }).done(function() { 
      //Do something 
      }); 

PHP代碼:

$proc = $_POST['proc']; 

if ($proc == 1){ 

//$video = $_POST['video']; 
} 

正如你可以看到我的評論,我的POST傳遞給一個變量,仍引發錯誤的行。

我能做些什麼包含base64代碼的視頻變量不擴展消耗如此高的內存水平? 沒有更高的memory_limit設置嗎?

+0

請發佈了PHP代碼的更新你的'proc_vids.php'代碼 – cmorrissey

+0

。 – B1GB0Y

+0

你試過增加'post_max_size'嗎? – Justinas

回答

0

由於cmorrissey問題已解決!

我用相同的方法,在該線程描述:Convert HTML5 Canvas into File to be uploaded?

發送AJAX POST作爲FORMDATA和BASE64數據轉換爲Uint8Array成團塊是關鍵的POST製成時不分配PHP存儲器。但要小心,因爲舊版瀏覽器可能不支持blob。

謝謝你們;)