В некоторых файлах (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 байт.