Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to download file using ionic file transfer plugin in ionic 5+

here im using ionic file transfer plugin for downloading a file and when ever i tried to download the file im getting below error

401

and also every time i build a file i need to add the below code in android also

public class FileProvider extends androidx.core.content.FileProvider

is there any other alternative for this download . i checked capacitor site but im not sure how to use file storage plugin in that and below is my code using file transfer

 pdfUrl = 'https://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf';


  constructor(private transfer: FileTransfer, private file: File) {}

  download() {
    const fileTransfer: FileTransferObject = this.transfer.create();
    const url = this.pdfUrl;
  fileTransfer.download(url, this.file.dataDirectory).then((entry) => {
    console.log('download complete: ' + entry.toURL());
    this.saveData = entry.toURL();

  }, (error) => {
    // handle error
    console.log(error);
  });
like image 626
Madpop Avatar asked Jun 19 '21 17:06

Madpop


People also ask

How do you attach files in ionic?

Shortcut to the steps:Create New Ionic 3 and Cordova App. Install and Configure Camera, File and File Transfer Plugin. Create Upload Page and Controller. Test Upload Image File using Android and iOS Device.


3 Answers

On Android, cordova-plugin-file-transfer requires cordova-plugin-whitelist.

Install it with npm install cordova-plugin-whitelist and then run npx cap update

Also, cordova-plugin-file-transfer requires the path to the file where you want to write, you passed a directory, you should change fileTransfer.download(url, this.file.dataDirectory) to fileTransfer.download(url, this.file.dataDirectory + '/NatureDeepReview.pdf')

like image 132
jcesarmobile Avatar answered Oct 18 '22 02:10

jcesarmobile


try to the following :

firstly add the plugin: cordova-plugin-whitelist

secondely in the config.xml add the following <access origin="*" />

and the reference is used to answer the issue is :
https://github.com/ionic-team/capacitor/issues/1199

like image 1
Mustafa Wali Avatar answered Oct 18 '22 01:10

Mustafa Wali


Check permission in your android manifest file and try again if your manifest file ok you added your permission then you have to check your destination route.

in your android manifest file

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
like image 1
divyraj Avatar answered Oct 18 '22 03:10

divyraj