注意点

     private File image;//对应的就是表单中文件上传的那个输入域的名称,Struts2框架会封装成File类型的
private String imageFileName;// 上传输入域FileName 文件名
private String imageContentType;// 上传文件的MIME类型

单个文件

 package cn.itcast.action;

 import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Serializable; import javax.servlet.ServletContext; import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport; public class UploadAction1 extends ActionSupport implements Serializable { private File image;//对应的就是表单中文件上传的那个输入域的名称,Struts2框架会封装成File类型的
private String imageFileName;// 上传输入域FileName 文件名
private String imageContentType;// 上传文件的MIME类型 public File getImage() {
return image;
} public void setImage(File image) {
this.image = image;
} public String getImageFileName() {
return imageFileName;
} public void setImageFileName(String imageFileName) {
this.imageFileName = imageFileName;
} public String getImageContentType() {
return imageContentType;
} public void setImageContentType(String imageContentType) {
this.imageContentType = imageContentType;
} public String execute(){
System.out.println(imageContentType);
try {
//处理实际的上传代码
//找到存储文件的真实路径
// System.out.println(imageFileName);
ServletContext sc = ServletActionContext.getServletContext();
String storePath = sc.getRealPath("/files");
//构建输入输出流
// OutputStream out = new FileOutputStream(storePath+"\\"+imageFileName);
// InputStream in = new FileInputStream(image);
// byte b[] = new byte[1024];
// int len = -1;
// while((len=in.read(b))!=-1){
// out.write(b, 0, len);
// }
// out.close();
// in.close(); FileUtils.copyFile(image, new File(storePath,imageFileName)); ActionContext.getContext().put("message", "上传成功!");
return SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
}
}

jsp中

   <body>
<form action="${pageContext.request.contextPath}/upload/upload1.action" method="post" enctype="multipart/form-data">
文件:<input type="file" name="image"/><br/>
<input type="submit" value="上传"/>
</form>
</body>

多个文件上传

 package cn.itcast.action;

 import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Serializable; import javax.servlet.ServletContext; import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport; public class UploadAction2 extends ActionSupport implements Serializable { private File[] images;//对应的就是表单中文件上传的那个输入域的名称,Struts2框架会封装成File类型的
private String[] imagesFileName;// 上传输入域FileName 文件名
private String[] imagesContentType;// 上传文件的MIME类型 public File[] getImages() {
return images;
} public void setImages(File[] images) {
this.images = images;
} public String[] getImagesFileName() {
return imagesFileName;
} public void setImagesFileName(String[] imagesFileName) {
this.imagesFileName = imagesFileName;
} public String[] getImagesContentType() {
return imagesContentType;
} public void setImagesContentType(String[] imagesContentType) {
this.imagesContentType = imagesContentType;
} public String execute(){
try { if(images!=null&&images.length>0){
ServletContext sc = ServletActionContext.getServletContext();
String storePath = sc.getRealPath("/files");
for(int i=0;i<images.length;i++)
FileUtils.copyFile(images[i], new File(storePath,imagesFileName[i]));
}
ActionContext.getContext().put("message", "上传成功!");
return SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
}
}

jsp中

   <body>
<form action="${pageContext.request.contextPath}/upload/upload2.action" method="post" enctype="multipart/form-data">
文件1:<input type="file" name="images"/><br/>
文件2:<input type="file" name="images"/><br/>
<input type="submit" value="上传"/>
</form>
</body>

struts.xml中配置

设置文件上传大小

     <constant name="struts.multipart.maxSize" value="52428800"></constant>
     <package name="upload" namespace="/upload" extends="mypackage">
<action name="upload1" class="cn.itcast.action.UploadAction1" method="execute">
<result name="success">/success.jsp</result>
</action>
<action name="upload2" class="cn.itcast.action.UploadAction2" method="execute">
<result name="success">/success.jsp</result>
</action>
</package>
 
 
 

struts2中文件上传的更多相关文章

  1. jsp\struts1.2\struts2 中文件上传(转)

    jsp\struts1.2\struts2 中文件上传 a.在jsp中简单利用Commons-fileupload组件实现 b.在struts1.2中实现c.在sturts2中实现现在把Code与大家 ...

  2. Struts2中文件上传下载实例

    1.单文件上传 jsp页面: <!-- 单文件上传 --> <form action="Fileupload.action" method="post& ...

  3. struts2的文件上传和文件下载

    实现使用Struts2文件上传和文件下载: 注意点: (1)对应表单的file1和私有成员变量的名称必须一致 <input type="file" name="fi ...

  4. 【Struts2】文件上传与下载

    一.上传 1.1 Struts2实现步骤 浏览器端 服务器端 1.2 关于Struts2中文件上传细节: 1.3 示例 jsp文件 Action类 struts.xml文件配置 二.下载 2.1 文件 ...

  5. Struts2之文件上传与下载

    时间:2017-1-11 15:47 --使用commons-fileupload组件上传1.客户端    *   method="post"    *   <input t ...

  6. struts2的文件上传

    在做B/S系统时,通常会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来 ...

  7. Struts2+Uploadify文件上传使用详解

    Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.不过官方提供的实例是php版本的,本文将详细介绍Uploadify在java中的使用,您也可以点击下面的链接进行演示或下 ...

  8. Struts2 多文件上传

    Struts2多文件上传只需要将 单文件上传中的File变成File[]  即可,上篇文章:单文件上传 <form action="${pageContext.request.cont ...

  9. Struts2图片文件上传,判断图片格式和图片大小

    1. 配置Struts2能够上传的最大文件大小 使用Struts2进行文件上传的时候,Struts2默认文件大小最大为2MB,如果要传大一点的文件,就需要修改struts.xml配置文件,重新设置能够 ...

随机推荐

  1. [UOJ336]无限之环

    题目的要求就是每个接头都有且仅有一个与其相连的接头,所以不妨给每个接头$1$的流量,对整个网格图黑白染色后(源点$\mathop\rightarrow\limits^\infty$黑点,白点$\mat ...

  2. 【推导】【暴力】Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) C. Five Dimensional Points

    题意:给你五维空间内n个点,问你有多少个点不是坏点. 坏点定义:如果对于某个点A,存在点B,C,使得角BAC为锐角,那么A是坏点. 结论:如果n维空间内已经存在2*n+1个点,那么再往里面添加任意多个 ...

  3. 【KMP模板】POJ3461-Oulipo

    [题意] 找出第一个字符串在第二个字符串中出现次数. [注意点] 一定要先将strlen存下来,而不能每次用每次求,否则会TLE! #include<iostream> #include& ...

  4. 小Z的城市之旅

    题目大意: 从(0,0)走到(x,y),每次可以向上下左右走一格,问走r步刚好到(x,y)的方案数. 思路: 找规律发现答案就是C((r+x-y)/2,r)*C((r-x-y)/2,r). #incl ...

  5. Problem D: 判断上否上三角矩阵

    #include<stdio.h> int main() { ][],i,j; while(scanf("%d",&n)!=EOF) { ; //flag用来做 ...

  6. DoTA与人生

    一个dota菜鸟的人生感悟                接触Dota有了快3年之久,3年里可以经历很多东西,经历了很多东西之后就会有很多的感悟,有些感悟抽象的表达不出来,但是借助于dota,可以间接 ...

  7. C#中的as(转)

    as:用于检查在兼容的引用类型之间执行某些类型的转换.    Employee myEmployee = myObject as Employee;    if (myEmployee != null ...

  8. WEB.NET error:请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping 解决方案

    参考 http://blog.csdn.net/kisscatforever/article/details/50579935 今天用了一个组件 一个验证型的组件. 然后出现了这个问题. 我看了网上一 ...

  9. Scala 匿名函数

    Scala 中定义匿名函数的语法很简单,箭头左边是参数列表,右边是函数体. 使用匿名函数后,我们的代码变得更简洁了. 下面的表达式就定义了一个接受一个Int类型输入参数的匿名函数: var inc = ...

  10. iOS 在系统设置中展示Version, Build, Git等信息

     在设置中,展示自定义内容,如下图INFO区域内容:         步骤: 1.在项目中添加Settings.bundle文件 Root.plist和Root.plist的Source code如下 ...