Codrova XMLHttpRequest Скачать файл - PullRequest
       2

Codrova XMLHttpRequest Скачать файл

0 голосов
/ 08 декабря 2018

Я работаю с Cordova и пытаюсь загрузить файл с XMLHttpRequest

Я пытаюсь использовать этот пример

https://cordova.apache.org/blog/2017/10/18/from-filetransfer-to-xhr2.html

Вот мой код

var fileName = "test.mp3";
var dlUrl = "http://myserver.com/down.php?id=123";
var fileSystem = cordova.file.externalApplicationStorageDirectory + "myfolder/downloads";

window.resolveLocalFileSystemURL(fileSystem, function (dir) {

dir.getFile(fileName, {create: true}, function (file) {

var oReq = new XMLHttpRequest();

oReq.addEventListener("progress", updateProgress);
oReq.addEventListener("load", transferComplete);
oReq.addEventListener("error", transferFailed);
oReq.addEventListener("abort", transferCanceled);

// Define how you want the XHR data to come back
oReq.responseType = "blob";

// I have added my domain to Content-Security-Policy <meta>
oReq.open("GET", dlUrl, true);

oReq.onload = function (oEvent) {

var blob = oReq.response; // Note: not oReq.responseText

if (blob) {

var url = window.URL.createObjectURL(blob);
alert( url );

} else {
alert('we didnt get an XHR response!');

};

oReq.send(null);

Если я получу доступ к своему скрипту загрузки php через браузер, он без проблем загрузит мой файл .mp3.Поэтому я предполагаю, что мой скрипт файлового сервера работает хорошо.

Когда я запускаю скрипт приложения, Cordova создаст пустой файл там, где я хочу.

Запрос на загрузку XMLHttpRequest выполняется без ошибок, но фактически не сохраняет извлеченные данные в файле, который создает Cordova.Файл просто пуст.

Когда я повторяю URL-адрес большого двоичного объекта, он находится не в папке, на которую я нацеливался с Cordova, а просто в «file: ///», а затем в длинной цепочке, я предполагаю, что временный файл сохраненгде-то.

Вопрос заключается в следующем: как получить загруженные данные, которые будут фактически сохранены в файле, создаваемом Cordova?

Спасибо.

1 Ответ

0 голосов
/ 08 декабря 2018

разобрался ...

используйте следующую функцию Cordova

saveFile(file, blob);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...