antd中,请问如何在上传时验证格式类型是否为 “.msg” ?

                <Upload 
                    beforeUpload={checkType}
                    onChange={handleOnChange} 
                    className="dragger" 
                    showUploadList={false}
                >
                    <Row>
                        <FileImageTwoTone />
                        <p className="dragger-text">Drag and drop your email here</p>
                    </Row>
                </Upload>

在checkType中:

    const checkType = (file:any) => {
 
            if (file.type !== 'application/vnd.ms-outlook') {
 
              message.error(`${file.name} is not a msg file`);
            }
            return file.type === 'application/vnd.ms-outlook' ? true : Upload.LIST_IGNORE;
    }

逻辑上好像没问题,问题在 application/vnd.ms-outlook 不是正确的.msg的type。

请问有人知道 .msg 的 file.type 吗?

谢谢

你可以在上传时使用console.log将你上传后的文件信息打印出来,另外判断文件格式不止那一种,你可以通过文件名进行字符串截取或者是否包含再或者使用正则表达式来判断,上传前的文件校验,获取文件名是不是这个格式的,不是的话就直接弹窗输出

直接检查文件后缀就行了。检查type也没多大意义,txt文件改为jpg后缀,type变为image/jpeg,并不是text/plain。有帮助麻烦点个采纳【本回答右上角】,谢谢~~


    const checkType = (file: any) => {
        //if (file.type !== 'application/vnd.ms-outlook') {
        //===>
        if (!/\.msg$/i.test(file.name)) {
            message.error(`${file.name} is not a msg file`);
            return Upload.LIST_IGNORE;///////////
        }
        return true;///////////
        //return file.type === 'application/vnd.ms-outlook' ? true : Upload.LIST_IGNORE;
    }

.msg的file.type 打印出来为空,即 “”
很为难啊

你上传成功时打印一下file对象

用accept属性就行,accept=".msg" , 如果接受多种类型用逗号隔开accept=".msg,.pdf"

你这个是java的吧,可以参考一下:
关于Java:如何获取.MSG文件的MIME类型? | 码农家园 How to get the MIME Type of a .MSG file?我已经尝试过这些方法来查找文件的MIME类型...[cc lang=java]Path source = Paths .get(C://Users/... https://www.codenong.com/31071425/