Javascript XMLHttpRequest.send(ArrayBuffer)上的网络错误

Javascript XMLHttpRequest.send(ArrayBuffer)上的网络错误,javascript,php,file-upload,web-worker,Javascript,Php,File Upload,Web Worker,我正在为3gb及以上的文件编写一个上传例程。为此,我将文件分块,并使用XMLHttpRequest.send(chunk)将每个片段发送到我的服务器 我使用webworkers使整个过程同步,所以我也使用FileReaderSync 我的例行程序对小文件很好,但在大文件中我会不时出错 异常发生在XMLHttpRequest.send(chunk) 网络错误//至少在IE 11中 我的日志显示 *检测到缓冲区溢出*:/usr/sbin/apache2终止 我就这样把我的工人送进去 self.onm

我正在为3gb及以上的文件编写一个上传例程。为此,我将文件分块,并使用
XMLHttpRequest.send(chunk)
将每个片段发送到我的服务器

我使用webworkers使整个过程同步,所以我也使用
FileReaderSync

我的例行程序对小文件很好,但在大文件中我会不时出错

异常发生在
XMLHttpRequest.send(chunk)

网络错误//至少在IE 11中

我的日志显示

*检测到缓冲区溢出*:/usr/sbin/apache2终止

我就这样把我的工人送进去

self.onmessage = function (event)
{
    // create XHR instance
    var xhr = new XMLHttpRequest();

    // send the file through POST
    xhr.open("post", "../upload.php", false); // Sync open file
    xhr.responseType = 'text';
    xhr.setRequestHeader("Content-Type", "application/octet-stream; charset=UTF-8");
    xhr.setRequestHeader("X-INDEX", event.data["index"]); // Chunkindex
    xhr.setRequestHeader("X-CHUNKS-TOTAL", event.data["maxChunks"]); // Total chunks
    xhr.setRequestHeader("X-PSEUDO-NAME", event.data["pseudoName"]); // pseudo name
    xhr.setRequestHeader("X-CHUNK-SIZE", event.data["size"]); // chunk size

    try {
        xhr.send(event.data["content"]); // here the Exception occurs
    } catch (e)
    {
        self.postMessage('error'); // error case
    }

    self.postMessage(xhr.responseText); // Return answer
};
日志中的回溯或内存映射在这里没有帮助,我不知道发生了什么

更新


块被读取
$inputHandler=fopen('php://input","r";并写入文件
文件内容($target,$inputHandler,file\u APPEND)

这是一个服务器错误,可能与您的实现无关。如何在服务器上保存数据?我将这个问题标记为不清楚,因为重要信息丢失。这是一个奇怪的问题,但试图解决它将导致长时间的评论讨论。如果你想解决这个问题,我创建了一个聊天室:我建议我们尝试使用不同的服务器来保存这个文件,看看它是否是Apache问题。在此之后,我们可能会尝试使用更多的低级函数来保存数据。@TomášZato谢谢您,但我会先尝试禁用所有模块等。如果我能找到任何解决方案或找不到任何解决方案,我会告诉您