无法将文件输入到FileList angular4

时间:2018-10-18 03:40:50

标签: angular

我的uploadPhoto功能有问题。问题是我有一个像库一样的通用组件,因为我在这个项目中使用了angular4。我在裁剪文件中使用了ng2-cropper-img。当我处理Croppep-img组件中的代码时,我想使用FileList将数据传递给通用组件。    这是我在cropper组件中的代码:

const base64ToInputFile = this.Base64toInputFile(this.data1.image.split(',')[1]);
const imageFile = new File([base64ToInputFile],this.imgLink[0].name,{type: 'image/jpeg'});
this.activeModal.close(imageFile)

现在我要传输数据到带有FileList的上载组件,因为当我将数据作为文件类型传输时,它不起作用。这是我在上载组件上的代码

fileChange(files) {
    if (this.cropImage && !this.multiple) {
      // this.fileChangeUpload(files)
      let modalRef = this.modalService.open(CropImageComponent)
      modalRef.componentInstance.imgLink = files;
      modalRef.result.then(data => {
        if (data) {
          this.fileChangeUpload(data)
        }
      })
    } else {
      this.fileChangeUpload(files)
    }
  }

当我捕获事件文件时,参数是FileList,而我找不到像broswer这样的将文件添加到FileList的方法。如果有人给我一个解决方案,我很高兴,tks

1 个答案:

答案 0 :(得分:0)

好吧,我只是提出了一个解决方案,当我将数据传递给裁纸器组件时,我会收到这样的数据

fileChange(files) {
    if (this.cropImage) {
      // this.fileChangeUpload(files)
      let modalRef = this.modalService.open(CropImageComponent, {backdrop: 'static'})
      modalRef.componentInstance.imgLink = files[0];
      modalRef.result.then(file => {
        if (file) {
          this.fileChangeUpload([file])
        }
      })
    } else {
      this.fileChangeUpload(files)
    }
  }