Javascript ng2文件上传单次上传覆盖文件上传

Javascript ng2文件上传单次上传覆盖文件上传,javascript,angular,file-upload,ng2-file-upload,Javascript,Angular,File Upload,Ng2 File Upload,我在本教程的基础上进行演示:。我想单文件上传,但没有删除文件按钮。通过添加文件A,之后我添加文件B。文件A将替换为文件B。这是我的上载程序: this.uploader = new FileUploader( { url: this.baseURL, allowedFileType: ["xls"], maxFileSize: 5, queueLimit: 1 }); 请告诉我也许您可以使用库提供的函数的

我在本教程的基础上进行演示:。我想单文件上传,但没有删除文件按钮。通过添加文件A,之后我添加文件B。文件A将替换为文件B。这是我的上载程序:

 this.uploader = new FileUploader(
      {
        url: this.baseURL,
        allowedFileType: ["xls"],
        maxFileSize: 5,
        queueLimit: 1
      });

请告诉我

也许您可以使用库提供的函数的
onAfterAddingFile
回调。下面是示例代码。这总是用最新文件覆盖旧文件,队列将始终包含一个最新文件项

  ngOnInit() {

     this.uploader.onAfterAddingFile = (fileItem: FileItem) => this.onAfterAddingFile(fileItem)

}

onAfterAddingFile(fileItem: FileItem) {
   let latestFile = this.uploader.queue[this.uploader.queue.length-1]
   this.uploader.queue = []; 
   this.uploader.queue.push(latestFile);
} 

正如Arun Muthiyarkath所建议的,您可以在AfterAddingFile上使用
,但较短的代码是:

  ngOnInit() {
    this.uploader.onAfterAddingFile = (fileItem: FileItem) => {
      if (this.uploader.queue.length > 1) {
        this.uploader.removeFromQueue(this.uploader.queue[0]);
      }
    };
  }

来源:

请不要将代码本身作为答案发布。试着添加更多的上下文来解释为什么这会解决最初发布的问题。
this.uploader.onAfterAddingFile = (fileItem: FileItem) => {
  if (this.uploader.queue.length > 0) {
    this.uploader.queue = [fileItem];
  }
};