简单的文件上传系统
1.编写FileAdd.jsp -(View)
<%@ page language="JAVA" contentType="TEXT/HTML; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
...
<body>
<h4>Add File<h4>
<! enctype必须为multipart/form-data,该属性告诉框架这个请求需要被当做上传处理 >
<s:form action="FileUploader" method="post" enctype="multipart/form-data" >
<s:file name="file" label="FileName" />
<s:submit />
</s:form>
</body>
...
2.编写FileUploader.java -(Model)
public class FileUploader {
//上传文件方法
public void FileUpload(File file, String fileName, String DestinationPath) {
FileInputStream in;
FileOutputStream out;
File dir = new File(DestinationPath); //将给定路径名字符串转换为抽象路径名来创建一个新 File 实例,此File表示路径
if (!dir.exists()) {
dir.mkdir(); //按DestinationPath创建一个文件夹
}
//创建一个绝对路径targetPath
String targetPath = dir.getPath() + dir.separator + fileName;
File targetFile = new File(targetPath);
//上传文件
try {
in = new FileInputStream(file);
out = new FileOutputStream(targetFile);
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
} finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}
3.编写FileUploaderAction.java -(Model)
public class FileUploaderAction extends ActionSupport {
public String excute() {
private fu = new FileUploader();
try {
fu.FileUpload(getFile(), getFileName(), destinationPath);
} catch (Exception ex) {
ex.printStack();
}
return SUCCESS;
}
private File file;
private String fileName;
private String destinationPath;
... /* 各成员变量的getter及setter */
}
4.配置sturts.xml
<struts>
<constant name="struts.devMode" value="true" />
<package name="Upload" extends="struts-default" >
<action name="FileAdd" >
<result>/FileAdd.jsp</result>
</action>
<action name="FileUploader" class="com.vea.FileUploaderAction" >
<param name="destinationPath">./UploadFolder/</param>
<result>/FileAdded.jsp</result>
<result name="INPUT">/FileAdd.jsp</result>
</action>
</package>
</struts>
5.配置欢迎页面 index.jsp -(View)
加入如下语句
<meta http-equiv="REFRESH" content="1;URL=FileAdd.action" />
分享到:
相关推荐
- **文件上传**:利用 Struts2 的 FileUploadInterceptor 实现文件上传功能。 - **文件下载**:可以通过 Action 的响应流来实现文件下载。 #### 五、Struts2 实践技巧与优化 **5.1 性能优化** - **减少 Action ...
### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...
### Struts2学习笔记之文件上传与Ajax开发 #### Struts2文件上传 **文件上传简介** 文件上传是Web应用中常见的功能之一,Struts2框架内置了对文件上传的支持,使得开发者能够轻松地实现这一功能。为了确保文件...
在实际项目中,Struts2可以处理类型转换、文件上传下载、拦截器(Interceptor)防止重复提交等问题。Interceptor是Struts2中的重要特性,它允许在Action执行前后插入额外的处理逻辑,如登录验证、日志记录等。深入...
### Struts2学习笔记知识点详解 #### 一、准备工作及实例 **1. 解压struts-2.1.6-all.zip** - **Apps目录**:包含struts2自带的例子程序,适合初学者通过实际案例了解框架的基本用法。 - **Docs目录**:官方文档...
- `commons-fileupload-1.2.2.jar`: 文件上传组件。 - `commons-io-2.0.1.jar`: 文件操作支持库。 - `commons-lang-2.5.jar`: Java 语言包增强。 - 可参考 `struts-2.3.15.3-all\struts-2.3.15.3\apps\struts2-...
本篇学习笔记将引导我们从零开始,通过一个简单的"HelloWorld"项目,了解Struts2的基础知识。 首先,我们需要在本地环境中搭建Struts2的开发环境。这包括安装JDK、配置Java环境变量、下载Apache Struts2的最新版本...
### Struts2学习笔记知识点梳理 #### 一、Struts2框架概述 - **背景**:Struts2作为Struts1的升级版本,融合了WebWork框架的优点,由Apache基金会维护,是一个开源、免费的MVC框架。尽管随着时间的推移,Spring MVC...
文件上传功能则允许用户通过表单提交文件,Struts2提供了一套完整的处理机制。 拦截器是Struts2的核心特性之一,它可以插入到Action调用前后,执行预处理和后处理任务,如日志记录、权限检查、事务管理等。表单验证...
### 传智播客Struts2全程学习笔记 #### Struts2的优点 1. **无侵入式设计**:与Struts1相比,Struts2的设计更为先进,它不依赖于Servlet API或Struts API,这使得Struts2更加灵活且易于集成到其他环境中。在代码...
### Struts2.1学习笔记 #### Struts2的来源与优点 - **来源**:Struts2是在WebWork2的基础上发展起来的,它继承了WebWork2的优点,并且进行了改进,使其更适合现代Web应用程序的需求。与Struts1相比,Struts2的...