#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 });