美文网首页
文件上传

文件上传

作者: 黎涛note | 来源:发表于2017-12-25 09:52 被阅读0次
    Struts2框架默认采用Commons-fileupload组件完成文件上传功能。
    • 使用Struts2框架实现文件上传功能,只需在Action中定义一个java.io.File类型的成员并为之设立setter方法,方法名要和参数名对应。
    • 客户端上传的文件,Struts2框架会自动将其保存在临时文件中,封装成java.io.File类对象。
    如果还想得到上传的文件名和文件类型,需按照如下命名规则在Action中定成员:
    保存文件名的变量:paraName+ "FileName";
    保存文件类型的变量:paraName+ "ContentType";
    
    • 在Action的execute方法中,保存文件到指定的目录。

    【 示例】

    • 如果使用同一个参数名上传了多个文件,则只需将Action中的成员改为泛型列表:
    private List<File> paraName;
    private List<String> paraNameFileName;
    private List<String> paraNameContentType;
    

    【示例】

    • 如果要限制上传文件的类型及单个文件的大小,可以配置预定义的fileUpload拦截器,修改其allowedExtensions和maximumSize属性的值即可。
    <interceptor-ref name="fileUpload">
        <param name="allowedExtensions">doc,zip</param>
        <param name="maximumSize">10485760</param>
    </interceptor-ref>
    
    org.apache.struts2.struts-messages.properties文件中定义了默认错误消息:
    struts.messages.error.file.too.large=File too large: {0} "{1}" "{2}" {3}
    struts.messages.error.content.type.not.allowed=Content-Type not allowed: {0} "{1}" "{2}" {3}
    struts.messages.error.file.extension.not.allowed=File extension not allowed: {0} "{1}" "{2}" {3}
    
    注意:如果要自定义错误消息,只需在消息资源文件中重新定义这几个key对应的值

    【示例】

    • struts2的参数配置文件default.properties中有两个和文件上传相关的配置项:
    // 设置临时文件的存放路径
    struts.multipart.saveDir=
    // 设置一次上传最大量
    struts.multipart.maxSize=2097152
    

    【示

    相关文章

      网友评论

          本文标题:文件上传

          本文链接:https://www.haomeiwen.com/subject/vtmawxtx.html