Как исправить загрузку файлов NativeScript для некоторых файлов, прерывая загрузку после 196608 байт - PullRequest
0 голосов
/ 02 января 2019

В некоторых файлах (ios) на данный момент является единственной платформой, на которой я тестирую, если файл меньше 30 мегабайт, похоже, все работает с использованием nativescript-background-http для загрузки видеофайла на сервер.Если размер файла превышает 30 мегабайт, загрузка прерывается ровно в 196608 байт каждый раз.

Я знаю, что это не проблема сервера, прерывающая загрузку.Поскольку я установил как ограничения размера POST в IIS, так и ограничение максимального размера файла в ColdFusion до 500 мегабайт.

mediafilepicker.on("getFiles", function (res) {
    let results = res.object.get('results');

    if (results) {

        for (let i = 0; i < results.length; i++) {

            let result = results[i];
            let file = result.file;

            if (result.file && applicationModule.ios) 
            {
                console.dir(result);

                // We can copy it to app directory, if need
                //let fileName = "myTmpImage.mov";

                var session = bghttp.session("image-upload");
                var sFile = result.file.replace("file://", "");

                var filename = sFile.substring(sFile.lastIndexOf('/') + 1);
                var mimetype = filename.substring(filename.lastIndexOf('.') + 1);

                console.log(sFile);

                var request = {
                    url: 'http://www.mobilecoach.me/test_upload.cfm',
                    method: "POST",
                    headers: {
                        "Content-Type": "application/octet-stream",
                        "File-Name" : filename
                    },
                    description: "Uploading"
                };

                var params = [
                    { name: "file", filename: sFile, mimeType: "video/" + mimetype }
                    ];

                task = session.multipartUpload(params, request);
                task.on("progress", logEvent);
                task.on("error", logEvent);
                task.on("complete", logEvent);

                function logEvent(e) {
                    console.log("currentBytes: " + e.currentBytes);
                    console.log("totalBytes: " + e.totalBytes);
                    console.log(e.eventName);

                    if(e.eventName == "complete")
                    {
                        dialogsModule.alert({
                            message: "Upload Completed",
                            okButtonText: "Ok",
                            cancelable: false
                            }).then(() => {

                        })
                    }
                }
            }
        }
    }
});

Как я уже говорил, файлы размером менее 30 мегабайт работают нормально.Более 30 мегабайтных загрузок прерывается без ошибок, просто завершает / aborts @ ровно 196608 байт.

...