@wterrill wrote:
I’m trying to download a picture from the internet via ionic, and then show that picture directly from the native file system using the File plugin. Unfortunately, I can’t get it to work. I think that there might be a problem with the way V4 is interpreting the path in order to bind it to the src attribute.
I wrote a program to test it out… can someone look it over for any mistakes?
Thanks:
TS file
import { Component, OnInit } from '@angular/core'; import { FileTransfer, FileTransferObject } from '@ionic-native/file-transfer/ngx'; import { File } from '@ionic-native/file/ngx' @Component({ selector: 'app-scratch2', templateUrl: './scratch2.page.html', styleUrls: ['./scratch2.page.scss'], }) export class Scratch2Page implements OnInit { private address: string = null; private path: string = null; private fileNumber = 1; private latest = null; private toggle = false; constructor( private fileX: FileTransfer, private file: File ) { this.path = this.file.dataDirectory + "files/"; } ngOnInit() { let filename = this.nameFile() this.latest = this.nameFix(filename) console.log("1the filename that is returned is ********** ", filename) } nameFile(){ let filename = this.path + "file" + this.fileNumber return filename } nameFix(filename){ return filename.replace(/file:\/\//g, "") } downloadFile() { let filename = this.nameFile(); console.log("2the filename that is returned is ********** ", filename) console.log("Entered download File with url: ", this.address) let url = this.address const fileTransfer: FileTransferObject = this.fileX.create(); fileTransfer.download(url, filename).then((entry) => { console.log('fileTransfer.download data ** ** ** **:' + JSON.stringify(entry)); this.fileNumber += 1; this.latest = this.nameFix(filename) }, (err) => { // handle error console.log("downloadfile() error: " + JSON.stringify(err)); }); } toggleToggle(){ this.toggle = !this.toggle; } }
HTML file
<ion-header> <ion-toolbar> <ion-buttons slot="start"> <ion-back-button defaultHref="/"></ion-back-button> </ion-buttons> <ion-title>scratch2</ion-title> </ion-toolbar> <ion-toolbar>{{latest}} {{toggle}}</ion-toolbar> </ion-header> <ion-content padding> <ion-item> <ion-label>Address</ion-label> <ion-input placeholder="Enter address" [(ngModel)]="address"></ion-input> </ion-item> <ion-button (click)="downloadFile()"> Download from address</ion-button> <ion-button (click)="toggleToggle()">Toggle</ion-button> <img *ngIf="toggle" [src]="latest"/> </ion-content>
Posts: 1
Participants: 1