随笔 - 178  文章 - 2  评论 - 0  阅读 - 99381

struts2文件上传、下载、防止重复提交

Struts2 文件上传
Struts2 文件上传基于 Struts2 拦截器实现; Struts2 文件上传使用的是 fileupload 组件; Form 配置 enctype="multipart/form-data"; Struts2 获取上传文件:name (name 是文件表单的 name) Struts2 获取上传文件名:name+FileName; Struts2 获取上传文件的类型:name+ContentType;
配置文件的大小及类型
<paramname="allowedTypes">image/bmp,image/x-png,image/gif,image/jpg,image/jpeg</param> <paramname="maximumSize">81101</param>
<s:fielderror></s:fielderror>
大文件上传
Struts2 文件上传大小默认是 2M;
<constantname="struts.multipart.maxSize"value="20000000"></constant>
多文件上传时,对应的属性变成数组,循环上传。

Struts2文件下载
返回的是文件流
<result type="stream">
        <param name="contentDisposition">attachment;filename=${fileName}</param>
</result>
return InputStreamgetInputStream();
示例:
    private String fileName;

    public String getFileName() throws Exception{
        fileName=new String(fileName.getBytes(),"ISO8859-1");
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }
    
    public InputStream getInputStream()throws Exception{
        File file=new File("C:/例1.jpg");
        this.fileName="例1";
        return new FileInputStream(file);
    }

使用<s:token/>标签防重复提交
<s:token></s:token> :加在 form 里; 使用 token 拦截器:
         <interceptor-ref name="token"></interceptor-ref>
         <interceptor-ref name="defaultStack"></interceptor-ref>
         <result name="invalid.token">/student.jsp</result>
在 struts.xml 里配置,假如出现重复提 交,则直接回到页面;
<s:actionerror/>:在页面上显示错误信息;
使用 tokenSession 拦截器防重复提交
tokenSesssion 拦截器直接无视重复提交的请求;
    <interceptor-refname="tokenSession"></interceptor-ref>
<interceptor-refname="defaultStack"></interceptor-ref>

posted on   渐行渐远的那些人  阅读(75)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示