无法使用XHR和FormData上传大文件

时间:2018-03-22 11:30:49

标签: javascript file-upload upload xmlhttprequest

我使用XMLHttpRequest创建了简单的脚本。它发送文本和(可选)文件。它的工作原理但问题是不接受大文件(超过50MB)。我认为问题出在PHP的upload_max_filesizepost_max_size上,但它没有(我设置为512MB)。我现在不知道该怎么办......有什么想法吗?

function publishPost() {

    if (!event) { event = window.event; }
    event.preventDefault();

    var data = new FormData();
    data.append('SelectedFile', document.querySelector('#post input').files[0]);

    var x = new XMLHttpRequest();
    x.open('POST', 'upload.php', true);
    x.setRequestHeader('TEXT', post.innerHTML);
    x.onload = function() {
        if (x.readyState == XMLHttpRequest.DONE) {
            if (x.responseText == '1') {
                location.reload();
            } else {
                alert('Error: ' + x.responseText);
            }
        }
    }
    x.send(data);

}

和PHP:

$text = strip_tags($_SERVER['HTTP_TEXT']);
$file = $_FILES['SelectedFile']['name'];
$info = pathinfo($file);
$uniqid = uniqid();

if (!empty($file)) {

    $newfile = '../files/'.$uniqid.'.'.$info['extension'];

    if (move_uploaded_file($_FILES['SelectedFile']['tmp_name'], $newfile)) {
        $file = $uniqid.'.'.$info['extension'];
    }

}

// Adding to Database

我的错误是Undefined index: SelectedFile

0 个答案:

没有答案