strut2 上传文件

简介: jsp页面代码<form  action ="${ctx}/order/upload.action" method="post" enctype="multipart/form-data"> <s:file name="upload"  label="上传"/> 或者 <input name="upload" type="file">  <


jsp页面代码

<form  action ="${ctx}/order/upload.action" method="post" enctype="multipart/form-data">
 <s:file name="upload"  label="上传"/>
 或者
 <input name="upload" type="file">
  <button>提交</button>
 </form>


服务后台代码:

需要两个jar包一个是commons-fileupload.jar,另一个是commons-io.jar


//注意,file并不是指前端jsp上传过来的文件本身,而是文件上传过来存放在临时文件夹下面的文件

    private File upload;//上传的文件内容的对象与表单中的name属性一致
     
    private String uploadContentType;//Struts2约定的代表上传文件的内容类型(MIME)
    private String uploadFileName;//Struts2约定的代表上传的文件的名
    省略了get,set方法
    
       //文件上传方法
    public String upload(){
        //服务端存放上传文件目录
        String destPath = ServletActionContext.getServletContext().getRealPath("/upload");
        System.out.println(destPath);
        File file=new File(destPath);
        if(!file.exists()) file.mkdirs();
        System.out.println(file);
        try {
            FileUtils.copyFile(upload, new File(file,uploadFileName));
        } catch (IOException e) {
            e.printStackTrace();
            return ERROR;
        }
        
        return SUCCESS;
                
    }


strut配置

<action name="upload" class="orderAction" method="upload" >
<result name="success">/WEB-INF/pages/order/orderdetail.jsp</result>
</action>

上传后的文件保存在tomcat安装路径/webapps/应用名称/upload文件夹下

我的机器为

D:\Program Files\apache-tomcat-7.0.62\webapps\admin\upload





Struts 2是通过Commons FileUpload文件上传。
Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。从而我们就能够以本地文件方式的操作浏览器上传的文件


再添加<constant name="struts.multipart.maxSize" value ="10240000" />,Struts2的文件上传功能默认最大只能上传2M大小。这句重新指定了上传文件的最大限制,单位是字节。以这句为例,上传文件不能超过 10240000字节。注意,不能写成1024*1000*10这种形式。


在<package>标签之外添加<constant name="struts.multipart.saveDir" value ="/temp"/>,这句指定了上传文件的临时存放目录,以这句为例,临时存放目录为应用所在根目录下的temp文件夹,假设我的应用放在D:\Program Files\apache-tomcat-6.0.24\webapps下,那么临时存放目录就是D:\temp。也可以指定一个绝对路径。目录不存在也没关系,会自动创建。

struct 配置文件上传拦截器

</action>
        <!-- 上传 -->
        <action name="upload"
            class="com.erentc.Web.Action.hp.UploadeAction">
            <!-- 指定系统提供的上传文件过滤的拦截器 -->
            <interceptor-ref name="fileUpload">
                <param name="allowedTypes">
                    image/gif,image/pjpeg,image/x-png,image/jpg
                </param><!-- 允许上传的文件类型 -->
                <param name="maximumSize">900000</param><!-- 允许上传的文件大小 -->
            </interceptor-ref>
            <!-- 引用系统默认拦截器 -->
            <interceptor-ref name="defaultStack" />
            <!-- 通过param 元素注入savePath属性 -->
            <param name="savePath">/GoodsPic/upload</param><!-- 配置上传的路径 -->
            <result name="input">/uplode.jsp</result><!--发生错误时候 跳转的页面 -->
            <result name="success">/succ.jsp</result>
        </action>




the request was rejected because its size (3020812) exceeds the configured maximum (2097152)


本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1681576

目录
相关文章
|
7月前
|
前端开发
前端通过input标签封装Upload组件实现文件上传
前端通过input标签封装Upload组件实现文件上传
243 0
LayUI upload上传组件上传文件的两种方式
LayUI upload上传组件上传文件的两种方式
674 0
SpringMVC上传文件的三种方式
SpringMVC上传文件的三种方式
|
5月前
Element UI 上传文件 el-upload —— 手动上传文件,限制上传文件数量,文件类型校验等
Element UI 上传文件 el-upload —— 手动上传文件,限制上传文件数量,文件类型校验等
1396 0
|
存储 前端开发 Java
Element el-upload 文件上传/图片上传/拖拽上传/附带参数/附带请求头部详解
文目录 1. 前言 2. 基本用法 2.1 前端部分 2.2 后端部分 2.3 获取后端返回信息 3. 外观功能介绍 3.1 拖拽上传 3.2 显示图片 3.3 设置文件列表样式 3.4 显示提示信息 4. 事件功能介绍 4.1 限制上传文件数量 4.2 限制上传文件类型和大小 4.3 移除文件处理 4.4 手动上传 5. 附带参数 6. 附带请求头部 7. 小结
6094 0
|
JavaScript 前端开发 应用服务中间件
SpringMVC的单文件上传,多文件上传和下载文件(十二)下
SpringMVC的单文件上传,多文件上传和下载文件(十二)下
300 0
SpringMVC的单文件上传,多文件上传和下载文件(十二)下
|
前端开发 Java 应用服务中间件
SpringMVC的单文件上传,多文件上传和下载文件(十二)上
SpringMVC的单文件上传,多文件上传和下载文件(十二)上
224 0
SpringMVC的单文件上传,多文件上传和下载文件(十二)上
|
JavaScript 前端开发 Java
项目之关于Summernote的图片处理和基于SpringMVC的文件上传(10)
项目之关于Summernote的图片处理和基于SpringMVC的文件上传(10)
155 0
|
JSON Java 数据格式
struts2框架单文件、多文件上传实例详解
版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/79390681 简介  ...
1129 0