Не удается загрузить файл сейчас, когда filetransfer устарел

#angular #cordova #ionic-framework #file-transfer

#angular #кордова #ionic-framework #передача файлов

Вопрос:

Я написал приложение Ionic 4. Я хотел обновить его, и кажется, что filetransfer теперь устарел, поэтому я удалил его. проблема в том, что теперь я не могу загружать файлы. В документации говорится, что его можно заменить на XMLHttpRequest, как в ссылке ниже, по которой я перешел, чтобы создать новую функцию «downloadFiles». https://cordova.apache.org/blog/2017/10/18/from-filetransfer-to-xhr2.html

Но это решение заставляет меня бороться с проблемой CORS. Я не могу установить правильный заголовок CORS (разрешить происхождение и прочее) на сервере, потому что я не могу его отредактировать.

Как правильно загружать файлы сейчас с помощью Ionic?

Заранее спасибо

Комментарии:

1. Используйте этот плагин: ionicframework.com/docs/native/file-transfer

2. Как я уже говорил в теме, я не могу, потому что он устарел :,(

3. Он не устарел. Он отлично работает в моих приложениях. Я думаю, вы что-то упускаете.

4. Этот плагин был устаревшим, пока недавнее голосование Apache Cordova PMC не решило отменить его

Ответ №1:

Наконец-то найдено решение с помощью плагина cordova-plugin-advanced-http

сначала установите плагин

 ionic cordova plugin add cordova-plugin-advanced-http
npm install @ionic-native/http
  

затем используйте его для получения большого двоичного объекта, чтобы обойти проблемы cors

  import { HTTP, HTTPResponse } from '@ionic-native/http/ngx';

 constructor(
   private adHTTP: HTTP
 )
 ...
  const reqOptions: any = {
    method: 'get',
    responseType: 'blob'
  };
  let res: HTTPResponse = await this.adHTTP.sendRequest(source, reqOptions);
  let blob: Blob = res.data;
  await this.file.writeFile(path, filename, blob, { replace: true });