使用FILE对象的.MSG文件可以使用哪种MIME类型 [英] which mime type can I use for .MSG file using FILE object

查看:44
本文介绍了使用FILE对象的.MSG文件可以使用哪种MIME类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我曾尝试从之前上传的文件中获取MIME类型,但返回‘’。是否有任何库或代码来获取文件类型的Outlook文件的角度。例如:对于图像,它显示‘IMACES/PNG’。请看一看。对于.msg文件扩展名Outlook文件,它将显示

但对于.png文件,它显示的是文件类型,如下

在此site

他们提到不常见的文件扩展名将返回空字符串 如何克服这个问题?请帮助我将MIME类型获取为应用程序/vnd.ms-Outlook 应用程序/八位字节流。

推荐答案

我遇到了同样的问题,即浏览器没有为Outlook-msg-文件返回正确的MIME类型。File的type-属性显示的不是application/vnd.ms-outlook,而是空字符串

我使用了以下解决方法(通过检查文件扩展名)来解决此问题:

在我的文件上载逻辑中,我测试拖放或选择的文件是否来自任何或多个可接受的MIME类型。如果存在没有给定MIME类型的文件,则检查文件扩展名。

进一步的验证逻辑,例如,如果给定的文件确实是Outlook邮件类型,则可以在服务器端使用您喜欢的编程语言完成。

    let enableOutlookMimetypeDetection: boolean = true;

    let acceptRegexString: string = "(image/png)|(application/vnd.ms-outlook)"; // maybe you have to escape the slashes in the regex
    let allowOutlookMsgFiles: boolean = enableOutlookMimetypeDetection && acceptRegexString.indexOf("application/vnd.ms-outlook") >= 0;

    let acceptRegex: RegExp = new RegExp(acceptRegexString);
    for (let i: number = 0; i < files.length; i++) {
        if (allowOutlookMsgFiles) {
            if (files[i].name !== null && files[i].name !== undefined && files[i].name.endsWith(".msg")) {
                console.log("outlook msg-file found");
                continue;
            }
        }

        if (!acceptRegex.test(files[i].type)) {
            return false;
        }
    }

    return true;

这篇关于使用FILE对象的.MSG文件可以使用哪种MIME类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆