Angular ng2-file-upload 输入文件过滤器不适用于 Internet Explorer 中的 PNG

Angular ng2-file-upload Input File Filter not working for PNG in Internet Explorer

我正在使用带有文件类型限制的 ng2-file-upload 文件上传器。 但是,每次我使用 Internet Explorer 11 选择 png 文件时,它都不会添加到队列中。所有其他允许的文件类型都有效。 这是带有文件选项的代码:

let uploadOptions: FileUploaderOptions;
if (navigator.userAgent.match(/Trident.*rv\:11\./)) {
  uploadOptions = {
    url: uploadUrl,
    allowedFileType: ['xls', 'xlsx', 'doc', 'docx', 'pdf', 'gif', 'jpg', 'jpeg', 'png', 'odt', 'txt', 'ods'],
    maxFileSize: 10 * 1024 * 1024
  };
} else {
  uploadOptions = {
    url: uploadUrl,
    allowedMimeType: ['application/pdf',
      'application/vnd.ms-excel',
      'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
      'application/msword',
      'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
      'application/vnd.oasis.opendocument.text',
      'application/vnd.oasis.opendocument.spreadsheet',
      'image/gif',
      'image/jpeg',
      'image/png'
    ],
    maxFileSize: 10 * 1024 * 1024
  };

}

this.uploader = new FileUploader(uploadOptions);
this.uploader.onCompleteAll = () => {
  this.editStateService.documentAdded('player', 'document');
  this.documentListUpdated.emit();
  this.uploader.clearQueue();
};

有人知道如何让它工作吗?

经过一些研究后,我发现旧版本的 IE 会 return 一组不同的 MIME 类型用于 JPEG 和 PNG 图像格式。检查以下列表:

  • image/png
  • image/x-png
  • image/x-citrix-png
  • image/x-citrix-jpeg
  • image/pjpeg

添加到允许的 MimeType 列表:image/x-png

请检查this thread,allowedFileTypes实际上不是文件扩展名,它支持以下文件类型:

  • 申请
  • 图片
  • 视频
  • 音频
  • pdf
  • 压缩
  • 文档
  • xls
  • ppt

尝试将 image 添加到允许的文件类型列表。