一、文件上传
Struts2的文件上传需要commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar文件。
第一个为文件上传组件,第二个为文件操作组件。
各部分代码必须遵守如下规则
1、页面代码片段如下
<form enctype="multipart/form-data" action="/test/upfile.action" method="post">
<input type="file" name="photo" />
<input type="submit" value="上传"/>
</form>
注意红色标准部分会影响Struts2控件对数据的封装。
2、java代码如下
package test;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
public class UploadAction {
private File photo; //Struts2将上传的文件封装到该对象中。
private String photoContextType; //文件属性
private String photoFileName; //上传文件的名称,文件名格式必须为 文件对象变量名+FileName。
public File getPhoto() {
return photo;
}
public void setPhoto(File photo) {
this.photo = photo;
}
public String getPhotoFileName() {
return photoFileName;
}
public void setPhotoFileName(String photoFileName) {
this.photoFileName = photoFileName;
}
public String execute() throws IOException{
String filePath = ServletActionContext.getServletContext().getRealPath("/upfiles"); //获取文件存放路径
File toFile = new File(new File(filePath) , photoFileName); //创建要保存的文件。
if(photo != null){ //判断源文件是否存在
if(!toFile.getParentFile().exists()){ //判断文件存放路径是否存在
toFile.getParentFile().mkdirs(); //创建文件存放路径
}
FileUtils.copyFile(photo, toFile); //文件拷贝,将源文件复制到目的文件中。用该封装类实现了文件保存。
ActionContext.getContext().put("message", "上传成功!");
}
return "success";
}
}
二、文件下载
1、页面代码如下
<form enctype="multipart/form-data" action="/test/upfiles.action" method="post">
<input type="file" name="photos" /></br>
<input type="file" name="photos" /></br>
<input type="submit" value="上传"/>
相对于一个文件的页面设置,只是根据需要添加文件路径即可。
2、java代码如下
package test;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
public class UploadsAction {
private File[] photos;
private String[] photosFileName;
public File[] getPhotos() {
return photos;
}
public void setPhotos(File[] photos) {
this.photos = photos;
}
public String[] getPhotosFileName() {
return photosFileName;
}
public void setPhotosFileName(String[] photosFileName) {
this.photosFileName = photosFileName;
}
public String execute() throws IOException{
String filePath = ServletActionContext.getServletContext().getRealPath("/upfiles");
System.out.println(filePath);
if(photos != null && photos.length > 0){
File pf = new File(filePath);
if(!pf.exists())pf.mkdirs();
for(int i=0;i<photos.length;i++){
File toFile = new File(pf,photosFileName[i]);
FileUtils.copyFile(photos[i], toFile);
}
ActionContext.getContext().put("message", "上传成功!");
}
return "success";
}
}
java代码中只需要对应的将属性变量改为数组类型,然后循环获取即可。
分享到:
相关推荐
该属性设定了Struts 2文件上传中整个请求内容的最大字节数限制,以防止过大的文件上传导致的问题。 #### struts.custom.properties 指定了Struts 2应用加载的用户自定义属性文件,自定义属性文件中的设置不会覆盖`...
这些属性决定了Struts 2的行为特征以及与其他组件如Spring、文件上传组件等的集成方式。下面将详细介绍`struts.properties`文件中可以定义的关键配置项。 #### struts.configuration **描述**: 此属性用于指定加载...
struts.multipart.parser 属性指定处理 multipart/form-data 的 MIME 类型(文件上传)请求的框架,该属性支持 cos、pell 和 jakarta 等属性值,即分别对应使用 cos 的文件上传框架、pell 上传及 common-fileupload ...
例如,通过调整`struts.multipart.maxSize`可以防止因文件过大导致的服务器崩溃,而选择合适的`struts.multipart.parser`可以优化文件上传的效率。总之,掌握Struts2的常量配置是优化和调试Struts2应用的关键步骤。
### Struts2文件上传与下载教程 #### 一、文件上传原理及实现 **1.1 基础概念** 文件上传是Web开发中的常见需求之一。在Struts2框架中,实现文件上传主要依赖于表单的`enctype`属性设置为`multipart/form-data`。...
- **文件上传/下载**:如何处理文件的上传和下载操作。 **4.2 Struts 2 Action** Action是Struts 2的核心组件,负责处理用户的请求,并执行相应的业务逻辑。这里将详细讨论如何实现Action类,以及如何利用Struts 2...
14. struts.locale:这是Struts应用程序的默认国际化地区信息。 15. struts.mapper.class:这是一个ActionMapper实现类,Struts2用于处理请求映射。 16. struts.multipart.maxSize:这是multipart请求信息的最大...
综上所述,本案例“Struts2之Servlet文件上传详解”将引导你了解如何结合Struts2和Servlet实现文件上传功能,包括配置、Action编写、JSP页面设计以及注意事项。通过实践,你将更深入地理解Struts2框架在处理复杂Web...
Struts2是一个基于Java的开源Web应用程序框架,它简化了Web应用的开发过程并提高了代码的可维护性。`struts.xml`作为Struts2的核心配置文件,在项目中扮演着极其重要的角色。本文将详细介绍`struts.xml`文件中的关键...
### 整合Struts_Hibernate_Spring应用开发详解 #### J2EE应用与环境 - **J2EE应用概述** - **J2EE应用的分层模型:** Java EE(J2EE)架构通常采用多层设计模式,主要包括表现层、业务逻辑层和服务层。这种分层有...
还深入探讨了如何利用Struts.2框架进行高效、安全的Web应用开发,包括但不限于表单处理、数据验证、异常处理、动态方法调用、文件上传下载、AJAX集成以及与Spring和Hibernate等其他流行框架的整合技术。 ### Struts...
- **文件上传与下载**:Struts2内置了对文件上传的支持,可以轻松实现文件上传功能;同时也可以配置下载功能,满足文件分发的需求。 - **权限控制**:利用拦截器实现细粒度的权限控制,确保只有授权用户才能访问敏感...
综上所述,Struts2的命名空间提供了一种有效的方式来组织和管理Action,而文件上传功能则使得处理用户上传的文件变得简单。在实际开发中,结合这两者,我们可以构建出功能丰富的Web应用。通过深入理解并实践这两个...
这些案例涵盖了用户认证、权限管理、表单处理、文件上传等多个方面,通过具体的代码示例和详细的步骤指导,展示了如何使用Struts.2和WebWork核心来解决实际开发中的常见问题。此外,书中还讨论了一些高级主题,如...
### Struts2中struts.properties配置详解 #### 概述 在Struts2框架中,除了大家熟知的`struts.xml`配置文件之外,还有一个重要的配置文件——`struts.properties`。该文件主要用来存储一些Struts2的核心配置属性,...
最后,文件上传相关的bean定义了不同的ActionMapper,如`DefaultActionMapper`、`CompositeActionMapper`、`RestfulActionMapper`和`Restful2ActionMapper`,它们处理不同类型的请求映射。 2)struts-plugin.xml 这...
Struts2框架是Java Web开发领域内一个重要的轻量级框架,它简化了基于MVC(Model-View-Controller)设计模式的应用程序开发过程。在Struts2框架中,有两个核心配置文件特别重要:`struts.xml` 和 `struts.properties...
Struts2 是一个功能强大且灵活的 Web 开发框架,它不仅能够帮助开发者快速搭建 Web 应用,还能通过其丰富的特性和扩展性满足复杂应用的需求。掌握 Struts2 的核心概念和技术要点,对于 Web 开发者来说至关重要。