Struts2上传:allowedTypes配置详解与常见文件类型

2星 需积分: 10 21 下载量 38 浏览量 更新于2024-09-11 收藏 35KB DOC 举报
在Struts2框架中,上传文件的功能是常见的功能之一,特别是在处理用户提交的表单时。`allowedTypes`属性是Struts2上传组件中一个关键的配置项,用于控制允许上传的文件类型,以防止恶意文件上传或不符合预期的文件类型。在Struts2的Action配置文件中,如`struts.xml`或`web.xml`中,`<fileUpload>`元素通常会包含这个属性。 `allowedTypes`的值是一个正则表达式列表,每个正则表达式对应一种或一类文件扩展名。例如,`.a':'application/octet-stream',表示允许上传`.a`扩展名的文件,其MIME类型为`application/octet-stream`,这通常适用于二进制数据,如二进制文件、压缩文件等。其他列出的文件扩展名及其对应的MIME类型包括: - `.ai`和`.eps`: 图像文件,PostScript格式 - `.aif`, `.aifc`, `.aiff`: 音频文件,AIFF格式 - `.au`: 基本音频格式 - `.avi`: 视频文件,Microsoft Video格式 - `.bat`: DOS批处理文件,文本格式 - `.bcpio`: 可打印的磁带记录格式 - `.bin`: 二进制文件,通用 - `.bmp`: Windows位图图像 - `.c`和`.h`: C/C++源代码文件,文本格式 - `.cdf`: 不同版本的CDF(可压缩文档格式)文件 - `.cpio`: Cpio文件格式 - `.csh`: C shell脚本 - `.css`: Cascading Style Sheets,用于网页样式 - `.dll`: 动态链接库,通常用于Windows系统 - `.doc`和`.dot`: Microsoft Word文档 - `.dvi`: 设备独立格式,排版文件 - `.eml`: 电子邮件消息,RFC 822格式 - `.eps`: PostScript图形文件 - `.etx`: 极简文本标记语言 - `.exe`: Windows可执行文件,二进制 - `.gif`: GIF图像格式 - `.gtar`: 扩展的tar归档文件 - `.html`和`.htm`: HTML网页文件 - `.ief`: Internet Explorer增强图像文件 - `.jpe`, `.jpeg`, `.jpg`: JPEG图像格式 - `.js`: JavaScript脚本文件 通过设置`allowedTypes`,开发人员可以确保应用程序只接受预期类型的文件上传,从而提高安全性并避免潜在的攻击。在实际应用中,可能需要根据项目需求进行适当的调整,甚至动态生成这个配置以适应不同的场景。例如,如果允许用户选择多个文件,可以使用通配符(如`*.txt`)或者基于文件后缀名的动态判断。 总结来说,Struts2中的`allowedTypes`属性是配置文件中一个重要的安全措施,用于限制上传文件的类型,防止不兼容或恶意文件被上传到服务器。正确地设置和管理这个选项对于构建健壮的Web应用程序至关重要。