【问题标题】:Download a file in ionic gives error like error code 1在 ionic 中下载文件会出现错误代码 1
【发布时间】:2018-12-18 12:42:09
【问题描述】:

我在我的 ionic 项目中使用 ionic-file-trasnfer,我使用的文档与以下文档相同:-

download() {
  const url = 'http://www.example.com/file.pdf';
  fileTransfer.download(url, this.file.dataDirectory + 'file.pdf').then((entry) => {
    console.log('download complete: ' + entry.toURL());
  }, (error) => {
    // handle error
  });
}

但是,我得到错误代码 1.. 它进入错误回调函数而不是成功回调

【问题讨论】:

    标签: cordova ionic-framework ionic3 file-transfer


    【解决方案1】:

    您必须在此函数中创建新的文件传输对象。请找到下面的代码

    import { FileTransfer, FileUploadOptions, FileTransferObject } from '@ionic-native/file-transfer';
    import { File } from '@ionic-native/file';
    import { FileOpener } from '@ionic-native/file-opener';
    
    constructor(private transfer: FileTransfer, private file: File, private fileOpener: FileOpener) { }
    
    ...
    download() {
    
     const url = 'http://www.example.com/file.pdf';
     const fileTransfer: FileTransferObject = this.transfer.create();
      fileTransfer.download(url, this.file.dataDirectory + 'file.pdf').then((entry) => {
        console.log('download complete: ' + entry.toURL());
         this.fileOpener.open(entry.toURL(), 'application/pdf')
      .then(() => console.log('File is opened'))
      .catch(e => console.log('Error opening file', e));
      }, (error) => {
        // handle error
      });
    

    要打开文件,您必须添加 fileOpener 插件 (https://ionicframework.com/docs/native/file-opener/),我刚刚更新了代码,请查看它。

    希望对您有所帮助!

    【讨论】:

    • 我也试过了,但是没有用!!它是否发布版本(离子版本或任何其他版本)?
    • 成功回调.. 但是,它不会打开文件
    【解决方案2】:

    import { DocumentViewer} from '@ionic-native/document-viewer';
    import { FileTransfer, FileTransferObject } from '@ionic-native/file-transfer';
    import {File} from '@ionic-native/file';
    import {Toast} from '@ionic-native/toast';
    
    constructor(private document:DocumentViewer, private file: File, private transfer: FileTransfer, private toast: Toast){}
    
    .....
    
    public download() {
            let path = null;
                if(this.platform.is('ios')){
                    path = this.file.documentsDirectory;
                }else if(this.platform.is('android')){
                    path = this.file.dataDirectory;
                }
                const fileTransfer: FileTransferObject = this.transfer.create();
                fileTransfer.download('http://www.example.com/file.pdf',path + 'file.pdf').then((entry)=>{
                    let url = entry.toURL();
                    this.toast.show('Download Complted', '5000','center').subscribe(
                        toast=>{
                            console.log(toast);
                        }
                    );
                    this.document.viewDocument(url, 'application/pdf', {});
                });
            }

    我已经对您的代码进行了一些编辑,您可以看看这段代码。我希望这会对你有所帮助。

    【讨论】:

    • 我也试过了,但是没有用!!它是否发布版本(离子版本或任何其他版本)?
    • 它来了 下载完成.. 但是,它不会打开文件
    • 我使用了相同的代码,但它对我来说很好用,兄弟。 youtube.com/watch?v=kM4cCQn8Bz4,您可以尝试观看此视频以更好地理解。
    • 是的,我也关注了那个视频,但是它对我不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多