0

わかりましたので、別の質問から大きなファイルをアップロードするためのこの方法を見つけました:

function sliceit(file)
{
    fr = new FileReader;
    chunkSize = 1000000;            

    chunks = Math.ceil(file.size / chunkSize);
    chunk = 0;
    var isstart = true;

    function loadNext() {
        start, end,
        start = chunk * chunkSize;
        if (start > file.size)
            start = end+1;
        end = start + (chunkSize -1) >= file.size ? file.size : start + (chunkSize -1);
        fr.onloadend = function(e)
        {
            while(!fr.result || fr.result == "" || fr.result == undefined)
            {
            }
            fdata = fr.result;
            xmlhttp, form, data;
            data = {};
            data.filename = document.getElementById("filename0").value;
            data.username = document.getElementById("username").value;
            data.password = document.getElementById("password").value;
            data.public = document.getElementById("public").value;
            if(isstart)
            {
                var form = new FormData();
                form.append("filename", data.filename);
                form.append("username", data.username);
                form.append("password", data.password);
                form.append("public", data.public);
                form.append("filebytes", fdata);
                xmlhttp = jQuery.ajaxSettings.xhr();
                xmlhttp.open("POST", "../MakeEmptyFile.php", false);
                isstart = false;
            }
            else
            {
                form = new FormData();
                form.append("filename", data.filename);
                form.append("username", data.username);
                form.append("password", data.password);
                form.append("filebytes", fdata);
                xmlhttp = jQuery.ajaxSettings.xhr();
                xmlhttp.open("POST", "../AddTo.php", false);
            }
            xmlhttp.send(form);
            console.log(xmlhttp.responseText);
            if (++chunk <= chunks)
            {
                loadNext();
            }
            else
            {
                stdlog("Completed.");
            }
        };
        fr.readAsText(file.slice(start, end));

    }
    loadNext();
}

何らかの理由で、XMLHttpRequest をロードするたびに、ファイル データが実際に送信されていないことが示されます。大きすぎたからか、それとも何か?ありがとう!

4

1 に答える 1