【问题标题】:Limit upload file action only for custom file extension using struts2使用 struts2 仅针对自定义文件扩展名限制上传文件操作
【发布时间】:2011-11-17 16:37:46
【问题描述】:

我想在 Struts2 中仅对带有 .key 扩展名的文件限制文件上传操作。如果我在 struts.xml 中的 fileUpload 拦截器中将文件类型设置为 application/octet-stream ,则它允许上传具有上述内容类型的所有文件而不考虑扩展名,但我的要求是将扩展名限制为 .key.

【问题讨论】:

    标签: struts2


    【解决方案1】:

    有两种方法可以实现上述目标。 声明式和编程式,为了声明式地限制文件类型,可以将逗号分隔的 allowedTypes 列表指定为 fileUpload 拦截器参数

    <action name="fileUpload" class="com.example.UploadAction">
        <interceptor-ref name="basicStack"/>
        <interceptor-ref name="fileUpload">
            <param name="allowedTypes"></param>
        </interceptor-ref> 
        <interceptor-ref name="validation"/>
        <interceptor-ref name="workflow"/>
    
        <result name="success"</result>
    </action>
    

    避免需要配置拦截器的更灵活的方法是以编程方式检查它 以编程方式限制文件类型意味着使用通过 setXContentType(String contentType) 方法传入 Action 类的信息。

    【讨论】:

      【解决方案2】:

      我已经得到了答案。您需要在 fileUpload 拦截器中使用另一个名为“allowedExtensions”的参数类型。以逗号分隔值输入您愿意允许的所有扩展名。您还可以为特定错误添加自定义消息。请参考Struts official site for file upload interceptor。下面是语法。

      <interceptor-ref name="fileUpload">
          <param name="allowedExtensions">key</param>
      </interceptor-ref> 
      

      【讨论】:

        猜你喜欢
        • 2011-06-08
        • 2017-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-12
        • 2014-06-09
        • 1970-01-01
        相关资源
        最近更新 更多