IONIC 3 - Я хочу получить путь к файлу PDF при выборе из файлового менеджера

Здесь я отправляю свой код выбора PDF из файлового менеджера. Мне нужно получить путь к файлу выбранного PDF. как я могу его получить?

.html

 <input type="file" (change)="selectPDF($event)" class="file-input upload-items" name='company_pdf' style="opacity: 0"
            id="company_pdf" #fileInp>

.ts

selectPDF(fileInput: any) {
if (fileInput.target.files[0].type == 'application/pdf') {
  console.log(fileInput.target.files)
  this.PDFfiles.push(fileInput.target.files[0]);
  if (this.PDFfiles.length > 4) {
    this.disablePdfUplaod = true;
  }
  //this.PDFfile = fileInput.target.files[0];
} else {
  this.shared.showToast('Please select PDF')
}
}

Всего 3 ответа


Вы можете попробовать Ionic FileOpener

  this.fileOpener
        .open(filePath, fileExtension)
        .then(() => {
          return true
        });

наилучшим подходом будет просмотр документов

Просмотр документов

Этот плагин предлагает тонкий API для просмотра файлов PDF, которые либо хранятся в папке с ресурсами приложений (/ www / *), либо в любом другом каталоге файловой системы, доступном через плагин файла cordova.

$ ionic cordova plugin add cordova-plugin-document-viewer
$ npm install --save @ionic-native/document-viewer


import { DocumentViewer } from '@ionic-native/document-viewer'

constructor(private document: DocumentViewer) { }

const options: DocumentViewerOptions = {
  title: 'My PDF'
}

this.document.viewDocument('assets/myFile.pdf', 'application/pdf', options)

если вы выбираете из файлового менеджера, сделайте некоторые подобные и откройте pdf из моего другого ответа

 this.fileChooser.open()
      .then(
        uri => {
          this.filePath.resolveNativePath(uri)
            .then(file => {
              this.fileDir = file;
              this.fileName = file.substring(file.lastIndexOf("/") + 1);
             // open the pdf
             })
            .catch(err => console.log(err));
        }
      )
      .catch(error => {
        this.showError(error);
      });

Есть идеи?

10000