获取文件MIME数据FileTypeChecker
Andes_云龙
2021.10.13 17:43发布于Mendix组件库
420
通过Java Action,获取文件的MIME数据
在Mendix开发中,和传统开发中一样遇到对多媒体文件需要处理,或是需要对文件真实的MIME进行判断的场景下,我们需要有一个可复用的功能模块支撑我们在Mendix中更快速完成任务。文章中介绍的是采用Apache Tika对文件的MIME进行获取,并在微流中进行更多的逻辑判断,给大家一个完整的示例并进行讲解(可从下方链接获取项目mpk文件)。
 
下载地址:
 
链接:https://pan.baidu.com/s/1olUlI510oJsqHCkxEKbpBQ
提取码:mxxx
 
打开应用可以直接运行,使用上传功能和检查图片是否为png/jpg/jpeg类型
 
 
简介和描述:
开发应用我们分两步走:
 
1、制作简单的overview和edit的页面:
Overview页面,用户可以在页面中新增文件,可以对列表中的文件进行类型检查

1.png

其中,Validate Image按钮的功能,是调用后台的微流进行逻辑判断,具体配置如下:

2.png

 
微流也非常简单,调用我们写好的Java Action - “GetFileType”对文件元数据进行分析,返回文件的MIME数据,并在微流中进行下一步的判断,这里以图片类型为例,我们判断文件是否为jpg、png或jpeg

3.png

 
创建一个Edit页面,用于用户上传文件:

4.png

通过上面的几个简单步骤,复用系统中的FileDocument模型,并通过简单的拖拉拽,已经完成了功能的开发;
 
为了测试功能,我们在导航栏上添加测试页面的入口

5.png

 
启动应用,进入到测试的页面,点击上传,通过页面上传png文件

6.png

 
点击Validate Image按钮,调用后端微流检查文件类型,并返回判断结果

7.png

 
作为测试手段,还可以用一些文件佯装成png,比如重命名一个zip文件为png

8.png

 
将假的png文件上传到系统中,进行检查的时候无法通过文件类型的检查,原因是Java Action中并非简单对文件后缀名进行检查,而是对采用了Apache Tika库,工具包可检测和提取上千种不同文件类型(例如 PPT、XLS 和 PDF)中的元数据和文本。所有这些文件类型都可以进行解析,更高级的用法这里不再赘述,有兴趣的同学请自行了解,如将 Tika 用于搜索引擎索引、内容分析、翻译等。

9.png

在很多对多媒体文件需要处理的场景,或是需要对文件真实的MIME进行判断的时候,可以采用这种方法进行处理;前端也有其他的获取MIME的方式,感兴趣的同学,可以将Java Action移植到任何其他在开发的项目中,或者对功能进行扩展。欢迎大家对技术和代码进行探讨,共同进步
 

DannyChuang、Code_Dove
点赞
收藏
手机查看
举报
0个评论
倒序看帖
仅看楼主

暂无数据