У меня есть приложение Cordova, которое запрашивает файл из веб-службы.Служба получает файл и использует следующий код c # для преобразования и отправки его обратно:
byte[] bytes = System.IO.File.ReadAllBytes(filepath);
return bytes;
Следующий код - это то, что я использую в приложении (javascript)
var bytes = new Uint8Array(data);
WriteFile(filename, bytes);
Который вызывает следующую функцию:
function WriteFile(fileName, data) {
try {
window.resolveLocalFileSystemURL(cordova.file.externalApplicationStorageDirectory, function (directoryEntry) {
directoryEntry.getFile(fileName, { create: true }, function (fileEntry) {
fileEntry.createWriter(function (fileWriter) {
fileWriter.onwriteend = function (e) {
//window.open(cordova.file.externalApplicationStorageDirectory + fileName, '_system', 'location=yes');
cordova.plugins.fileOpener2.open(cordova.file.externalApplicationStorageDirectory + fileName, 'application/pdf',
{
error: function (e) {
console.log('Error status: ' + e.status + ' - Error message: ' + e.message);
},
success: function () {
console.log('file opened successfully');
}
}
);
};
fileWriter.onerror = function (e) {
alert(e);
};
var blob = new Blob([data], { type: 'application/pdf' });
fileWriter.write(blob);
}, function onerror(e) {
alert(e);
});
}, function onerror(e) {
alert(e);
});
}, function onerror(e) {
alert(e);
});
} catch (e) {
alert(e);
}
}
Это способ отправки файла?или то, как я собираю это вместе, вызывает у меня проблемы?
Данные отправляются в виде очень длинной строки, и я не совсем уверен, что они не усекаются в какой-то момент после приложенияполучает его (все кажется там, когда он покидает службу)
Вся помощь приветствуется.
Спасибо