1、jsp页面:
<body>
${msg }
<form action="${pageContext.request.contextPath}/fileupload/fileupload.action" enctype="multipart/form-data" method="post">
文件:<input type="file" name="file"><input type="submit" value="上传">
</form>
</body>
一定要设置enctype为"multipart/form-data"。
2、struts配置:
<package name="fileupload" namespace="/fileupload" extends="struts-default">
<action name="fileupload" class="cn.itcast.action.FileUploadAction">
<result name="success">/upload.jsp</result>
</action>
</package>
记得要继承struts-default
3、action
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 file; //与页面中定义的名字一样
private String fileFileName; //表示上传的文件名,格式为XXXFileName
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public String execute() throws Exception{
String realPath = ServletActionContext.getServletContext().getRealPath("/upload"); //获取觉得路径
System.out.println(realPath);
if(file != null){
File saveFile = new File(realPath, fileFileName);
if(!saveFile.getParentFile().exists()){
saveFile.getParentFile().mkdirs(); //创建文件夹
}
//用commons-io的jar包
FileUtils.copyFile(file, saveFile);
ActionContext.getContext().put("msg", "上传成功");
}
return "success";
}
}
4、struts2默认最大只能上传2M的文件,如上传文件超过此限制则会报错:
警告: Request exceeded size limit!
org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (66671724) exceeds the configured maximum (10701096)
at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:965)
at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:310)
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:334)
at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.parseRequest(JakartaMultiPartRequest.java:189)
at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.processUpload(JakartaMultiPartRequest.java:127)
at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.parse(JakartaMultiPartRequest.java:92)
at org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper.<init>(MultiPartRequestWrapper.java:81)
at org.apache.struts2.dispatcher.Dispatcher.wrapRequest(Dispatcher.java:803)
at org.apache.struts2.dispatcher.ng.PrepareOperations.wrapRequest(PrepareOperations.java:134)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
可惜修改常量配置最大上传限制:
在strust.xml中配置, <constant name="struts.multipart.maxSize" value="10701096"/>
相关推荐
网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供刚上传的文件下载功能(其他的都可以在其上面进行扩充) 多文件 上传 下载...
在这个“Struts2实现文件上传”的主题中,我们将深入探讨如何利用Struts2框架来实现在Web应用中的文件上传功能。 首先,我们注意到一个细节描述:“private String uploadContextType;应更正为private String ...
通过以上步骤,你可以实现一个基于Struts2和Hibernate的文件上传与动态下载系统。这个系统能够处理用户上传的文件,将其保存到服务器,同时提供动态下载功能,允许用户根据需要下载文件。在实际开发中,还需要考虑...
在Struts2中,文件上传主要依赖于`org.apache.struts2.components.FileUpload`组件,这个组件是基于Commons FileUpload库实现的,它能够处理multipart/form-data类型的HTTP请求,这是文件上传所必需的格式。...
首先,要实现Struts2的文件上传,必须引入必要的依赖库。主要需要两个Apache Commons库:`commons-fileupload-1.2.2.jar`和`commons-io-2.0.1.jar`。这两个库提供了文件上传的基础功能,使得Struts2能够处理`...
在 Struts 2 中实现文件上传,首先需要在 JSP 页面创建一个支持多部分数据的表单。例如,在 `FileUpload.jsp` 文件中,表单的 `method` 应设置为 `POST`,`enctype` 应设置为 `multipart/form-data`。此外,使用 `...
Copy模式是Struts2提供的一种简单易用的文件上传方式。它通过Struts2的`FileUploadInterceptor`拦截器自动处理文件上传。首先,你需要在Action类中定义一个或多个`File`类型的属性和对应的字符串属性,用于存储临时...
通过以上步骤,你就可以在Struts1框架下实现一个简单的文件上传功能。不过要注意,Struts1已经较为老旧,现在更多地推荐使用Spring MVC或其他现代框架来开发Java Web应用。然而,了解Struts1的文件上传对于理解MVC...
在这个“struts2的实现文件上传的例子”中,我们将深入探讨如何利用Struts2框架来实现文件上传功能,并将其与MySQL数据库集成。 首先,我们需要在Struts2项目中配置Action类,这个类将负责处理文件上传请求。在...
在Struts2中实现文件上传功能,通常会涉及到处理大文件、用户体验优化等问题,如显示文件上传进度条。这个场景下,我们结合Ajax技术,可以创建一个实时反馈文件上传进度的动态界面,提升用户交互体验。 首先,我们...
这篇博文主要探讨了如何在Struts2框架下实现简单的文件上传功能。 首先,我们需要了解Struts2中的Action类。Action类是处理用户请求的核心组件,通常继承自`org.struts2.interceptor.FileUploadInterceptor`或实现...
本教程将深入浅出地讲解如何在Struts2中实现文件上传,并提供一个简单的实例来帮助理解。 1. **Struts2文件上传概述** 在Struts2中,文件上传主要依赖于Apache的Commons FileUpload库。这个库提供了处理HTTP多部分...
### Struts2实现多文件上传知识点详解 #### 实现原理 **Struts2**框架中的多文件上传功能主要是借助于**Apache Commons FileUpload**库来完成的。此库提供了处理HTTP请求中的`multipart/form-data`数据类型的能力...
这个项目是在MyEclipse环境下实现的一个简单的文件上传功能,让我们深入了解一下这些技术及其在文件上传中的应用。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它提供了强大的...
通过以上步骤,你可以在Struts2框架下实现简单的文件上传功能。在实际开发中,你可能还需要考虑更多细节,比如文件类型的验证、多文件上传、异步上传、文件大小限制等。这只是一个基础的实现,实际项目中可能需要...
### Struts2实现文件上传(单个+多个文件上传) #### 一、单个文件上传 在Struts2框架中实现文件上传是一项常见的需求。本文将详细介绍如何在Struts2中实现单个文件的上传。 ##### JSP 页面设计 首先,我们需要在...
Struts和SwfUpload是两种在Web开发中用于构建强大功能的应用工具,它们结合使用可以实现高效的文件上传功能。在本文中,我们将深入探讨这两个组件以及如何将它们整合以实现文件上传。 首先,Struts是一个基于MVC...
Struts2作为一个成熟的MVC框架,提供了简单的API和标记库来处理文件上传下载的业务逻辑。下面是基于给定文件内容的知识点详细说明。 ### Struts2文件上传知识点 1. **Struts2的form标签配置** 在Struts2中进行...
继承自`org.apache.struts2.dispatcher.multipart.DefaultMultiPartRequest`或使用Struts2的`@FileUpload`注解来处理文件上传。例如: ```java public class UploadImageAction extends ActionSupport { private ...
在这个“Struts2+Hibernate 文件上传”示例中,我们将深入探讨如何结合这两个框架实现文件上传功能。 文件上传是Web应用中的常见需求,允许用户上传图片、文档等各种类型的文件。在Struts2中,我们可以利用`Struts2...