struts版本为struts-2.1.8.1
项目名为 struts2
从路径 struts-2.1.8.1\lib 下将 struts2-core-2.1.8.1.jar,xwork-core-2.1.6.jar,commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar 复制到 WEB-INF/lib 目录下
配置struts.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.action.extension" value="do,action"></constant>
<!-- 设置文件上传大小限制10M -->
<constant name="struts.multipart.maxSize" value="10701096"></constant>
<package name="fileupload" namespace="/fileupload" extends="struts-default">
<action name="upload" class="com.cool.fileupload.FileUploadAction" method="execute">
<result name="success">/WEB-INF/page/message.jsp</result>
</action>
</package>
</struts>
创建第一个页面 fileupload.jsp (用于上传文件)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Fileupload Page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<form action="${pageContext.request.contextPath}/fileupload/upload.action" enctype="multipart/form-data" method="post">
文件:<input type="file" name="image" />
<input type="submit" value="上传"/>
</form>
</body>
</html>
创建第二个页面 /page/message.jsp (用于显示返回信息)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Message Page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
${message }
</body>
</html>
创建处理文件上传的Action
package com.cool.fileupload;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
public class FileUploadAction {
private File image;
private String imageFileName;
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 execute() throws Exception{
String realPath = ServletActionContext.getServletContext().getRealPath("/image");
if(this.image!=null){
File saveFile = new File(new File(realPath), this.imageFileName);
if(!saveFile.getParentFile().exists()) saveFile.getParentFile().mkdirs();
FileUtils.copyFile(image, saveFile);
}
ActionContext.getContext().put("message","上传成功");
return "success";
}
}
访问路径为 http://localhost:8080/struts2/fileupload.jsp (struts2为项目名)
选择文件,然后单击上传按钮,画面跳转到 /page/message.jsp,显示【上传成功】
然后到发布路径下看文件是否真正上传 F:\Tomcat\webapps\struts2\image ( F:\Tomcat 为本机Tomcat路径 )
测试成功。
关于多文件上传如下,只需将image和imageFileName定义成数组型即可
private File[] image;
private String[] imageFileName;
以上
分享到:
相关推荐
以上就是关于Struts2文件上传功能的简要介绍,以及`commons-fileupload`和`commons-io`库在其中的关键作用。这两个库极大地简化了Java web应用中的文件上传操作,使得开发者可以专注于业务逻辑,而无需关心底层的...
总的来说,`commons-fileupload-1.2.1.jar`和`commons-io-1.4.jar`是Struts2实现文件上传功能不可或缺的组成部分,它们提供了完善的文件上传处理机制,使得开发者可以专注于业务逻辑,而无需关注底层的文件传输细节...
总之,`commons-fileupload-1.2.1.jar`和`commons-io-1.4.jar`在Struts2框架中扮演了重要的角色,为开发者提供了便捷且安全的文件上传功能。通过合理使用这两个库,我们可以构建出高效、稳定的文件上传系统。
《Java Web文件上传:commons-fileupload-1.2.1详解》 在Java Web开发中,文件上传是一项常见的功能,用户可能需要上传图片、文档等各类文件。Apache Commons FileUpload库是一个强大的工具,用于处理HTTP协议中的...
6. **与其他框架的集成**:Apache Commons FileUpload可方便地与Struts、Spring MVC等Web框架结合,提供优雅的文件上传解决方案。 总之,Apache Commons FileUpload 1.2.1是一个强大的文件上传组件,它简化了在Java...
`commons-fileupload-1.2.1.jar` 是一个Java库,主要专注于处理HTTP协议中的文件上传功能。这个库是Apache Commons项目的一部分,由Apache软件基金会开发和维护,旨在简化在Java应用程序中处理用户通过表单提交的...
总的来说,`commons-fileupload-1.2.1.jar`和`commons-io-1.3.2.jar`这两个库在Struts和Spring MVC中扮演着关键角色,使得处理文件上传变得更加便捷和可靠。开发者可以通过这些库提供的API轻松实现文件上传功能,...
在压缩包内,"commons-fileupload-1.2.1.jar"是核心的库文件,包含了所有实现文件上传功能的类和方法。将这个JAR文件添加到项目的类路径中,就可以开始使用FileUpload的功能。 使用Commons FileUpload时,首先需要...
标题中的"commons-fileupload-1.2.1-bin"和"commons-io-1.4-bin.zip"分别指的是Apache Commons FileUpload 1.2.1版本和Apache Commons IO 1.4版本的二进制包。这两个组件在Java开发中扮演着重要的角色,尤其在处理...
1. **添加依赖**:在项目中引入`commons-fileupload-1.2.1.jar`和`commons-io-2.x.jar`(因为FileUpload依赖于Commons IO库)。在Eclipse中,你可以将这两个JAR文件添加到项目的类路径中,以便编译和运行。 2. **...
Struts2是一个流行的Java web应用程序框架,...总之,`commons-fileupload-1.2.1`是Struts2中处理文件上传的核心库,其Javadoc文档为开发者提供了详尽的API指南,使得在Java web应用中实现安全高效的文件上传成为可能。
总之,`commons-fileupload-1.2.1.jar`和`commons-io-1.4.jar`是实现Struts2文件上传的核心库,它们提供了文件上传的基本操作,而Struts2框架则通过其Action、配置文件和标签库实现了上传功能的集成。了解并熟练掌握...
关于压缩包子文件"commons-fileupload-1.2.1.jar"的出现,可能是由于历史版本的保留或者是一个错误,因为标题中提及的是1.2.2版本。在实际开发中,应该确保使用最新或与项目兼容的版本,避免因版本不匹配引发的问题...
Struts2本身没有自带的两个jar 如果不导入的话会有Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]异常
struts2-core-2.1.8.jar; struts2-core-2.2.1.jar; struts-json-plugin-2.1.8.jar;... commons-fileupload-1.2.1.jar; commons-email-1.2.jar; commons-collections-3.1.zip; mysql-connector-java-5.1.6-bin.jar.
1. `commons-fileupload-1.2.1.jar`:这是核心的文件上传库,提供了处理多部分数据和文件上传的类和接口。 2. `jakarta/commons-fileupload-1.2.1-sources.jar`:源代码包,开发者可以查看源码来理解其内部工作原理...
│ commons-fileupload-1.2.1.jar │ commons-logging-1.0.4.jar │ commons-logging.jar │ commons-pool.jar │ dom4j-1.6.1.jar │ freemarker-2.3.15.jar │ freemarker.jar │ hibernate-tools.jar │ ...
commons-beanutils-1.8.3.jar, commons-collections-3.2.1.jar, commons-fileupload-1.2.1.jar, commons-io-1.3.2.jar, commons-lang-2.5.jar, commons-logging-1.1.1.jar, ezmorph-1.0.6.jar, freemarker-2.3.15....