Я пытаюсь позволить пользователям загружать огромные файлы ~ 1 ГБ, используя PHP и HTML / JS.Из прошлого опыта я знаю, что загрузка файлов ~ 10 Мб также приводит к тому, что PHP отклоняет запрос.
Проблема в том, что запрос в моем js отправляется, но я не могу понять, как отправлять BLOB-объекты через php.почтовый запрос всегда пуст
Мой javascript выглядит так:
var xhttp = new XMLHttpRequest();
function doThing(){
var file = document.getElementById("file_upload").files[0];
var chunkSize = 1024 * 1024;
var fileSize = file.size;
var chunks = Math.ceil(file.size/chunkSize,chunkSize);
var chunk = 0;
console.log('file size..',fileSize);
console.log('chunks...',chunks);
sendFileSlice(file, chunkSize, chunk, chunks);
}
function sendFileSlice(file, chunkSize, chunk, chunks)
{
if(chunk <= chunks)
{
var offset = chunk*chunkSize;
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
chunk++;
sendFileSlice(file, chunkSize, chunk, chunks);
}
};
xhttp.open("POST", "printchunks.php", true);
xhttp.send(file.slice(offset,offset+chunkSize));
}
}
, а мой php, просто для теста, выглядит так:
<?php
//temporarily just put contents into a random file
file_put_contents(time()+rand(), print_r($_POST, true));
?>
I 'm используя Разделение файла на куски с помощью Javascript это как пример разделения, но я не могу найти AJAX, используя чистый Javascript.Я НЕ хочу JQuery, это последнее, что мне нужно, я просто хочу отправить BLOB-объект в PHP, чтобы он мог добавить его в файл.Похоже, это работает с точки зрения разделения, просто в файлах нет ничего