strut2 上传文件

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

时间: 2024-09-19 09:02:18

strut2 上传文件的相关文章

php限制上传文件类型并保存上传文件的方法

 这篇文章主要介绍了php限制上传文件类型并保存上传文件的方法,涉及php针对上传文件的常用操作技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了php限制上传文件类型并保存上传文件的方法.分享给大家供大家参考.具体如下: 下面的代码演示了php中如何获取用户上传的文件,并限制文件类型的一般图片文件,最后保存到服务器 ? 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 3

IE上传文件到服务器

前言:项目用的是struts1,想要上传文件必须用jsp,传输指定类型写struts1标签,这样局限性太强,果断放弃,写一个servlet来实现. web.xml <servlet> <display-name>UploadServlet</display-name> <servlet-name>UploadServlet</servlet-name> <servlet-class>com.phlx.product.wx.action

javascript-js 获取上传文件的绝对路径

问题描述 js 获取上传文件的绝对路径 各位,用标签上传文件,想要获取上传文件的绝对路径 不知道怎样获取 麻烦告知 感激不尽 解决方案 不是所有的浏览器都会报告绝对路径.如果浏览器不报告,不允许js访问,没有办法获得. 如果限定ie,特定的版本,可以用fso或者自己写activex 解决方案二: 浏览器安全问题,ie7+需要配置过安全才会返回实际路径,其他浏览器不行.而且你获取客户端路径也没什么意义..除非是黑客.. 解决方案三: 在html中 ???? ???? function?upload

用菜鸟的眼光浅谈php上传文件

本人由于想写个discuz插件,这个插件功能上涉及到上传文件这一功能,故以菜鸟的眼光来学习了下php上传文件.   首先,w3cshool查了下案例,觉得他说的非常详细,连我这个菜鸟都略懂了一二.   贴上地址:http://www.w3school.com.cn/php/php_file_upload.asp   照着这个讲解,写了下他这个demo,贴上代码:   html:   <form action="demo.php" method="post" e

利用Xmlhttp 分块上传文件

xml|上传 编写思路:把本地文件在客户端通过base64编码以后发送目的地.测试过程中,上传文件过大,导致超时不成功.后来经过改善.把编码分段发送.测试20M成功 编写目的:在传统的解决方案里面,一次一次选取上传可以.但是在碰到把数据库里文件路径读出来,并把这些文件上传到一个地方的时候就比较麻烦.如果得到路径一个一个去找到用ftp当然也是可以的,但每次找这些文件我看都会比较费时.这里编写这个主要就是为了通过数据库里的文件路径取得文件.把文件一次批量上传到一个地方.其主要目的还是为了锻炼一下自己

JSP实现上传文件的两种方法

js|上传 在用Java开发企业器系统的使用,特别是涉及到与办公相关的软件开发的时候,文件的上传是客户经常要提到的要求.因此有 一套很好文件上传的解决办法也能方便大家在这一块的开发. 首先申明,该文章是为了自己记录一备以后开发需要的时候,不用手忙脚乱哈哈........ 现在在国内用的非常多的一般是两种方法解决来解决文件上传. cos.jar + uploadbean.jar + filemover.jar 这个是用的非常普遍的,原因是因为他操作方便,是我们不必再去关注,那些文件的输入和输出流,

Win 2003上传文件不能超过200k解决方法

解决|上传 问题:无法上传较大的文件"Request 对象 错误 'ASP 0104 : 80004005'"或者上传成功后,找不到文件名 更改Win 2003的IIS 6.0对asp的上传文件大小为200k限制,aspx的上传程序没有影响.在IIS6.0中,默认设置是特别严格和安全的,最大只能传送 204,800 个字节,这样可以最大限度地减少因以前太宽松的超时和限制而造成的攻击.IIS 6 出于安全考虑, 默认最大请求是200K(也即最大提交数据限额为200KByte,204800

如何用javascript控制上传文件的大小?

javascript|控制|上传 如何用javascript控制上传文件的大小? --------本文讲的是用javascript和在IE下Image的一些属性如(fileSize,fileUpdatedDate)等控制上传文件的大小.   <form   name=Myform  >     <input   type=file   name=photo><br/>     <input   type=submit   value=submit></

一个函数无组件上传文件

函数|上传|无组件 <% '''''============================== '函数名:upfile '作用: 使用"化境上传组件"上传文件到服务器上 '参数: file1 文件对象 ' savepath 文件要保存的相对路径,如"../"上一级上录,""同目录 ' maxsize 允许上传文件的最大值,单位KB.为0不限大小. ' savetype 允许上传文件的类型,0不限制,限制的格式.如.jpg|.bmp|.zi