下面是实现Struts2多文件上传的完整攻略,包括两个示例。
步骤1:配置web.xml
在web.xml中,配置Struts2的过滤器,以确保Struts2拦截所有请求。以下是示例代码:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
步骤2:添加依赖项
在项目中添加以下依赖项:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>[版本号]</version>
</dependency>
请注意替换“[版本号]”为您想使用的Struts2版本号。
示范1:基本的文件上传
以下是如何实现基本的文件上传的示例代码:
1. 操作类
public class FileUploadAction extends ActionSupport {
private File file;
private String fileContentType;
private String fileFileName;
// Getters and setters
//...
public String execute() {
try {
String filePath = "PATH_TO_SAVE_FILE/" + fileFileName;
FileUtils.copyFile(file, new File(filePath));
} catch (IOException e) {
e.printStackTrace();
return ERROR;
}
return SUCCESS;
}
}
2. 映射文件
<action name="fileUpload" class="packageName.FileUploadAction">
<interceptor-ref name="fileUpload">
<param name="maximumSize">10485760</param> //设置上传文件大小上限(Byte)
</interceptor-ref>
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
请注意替换“packageName”为您的操作类所在的包名。
3. 页面(fileUpload.jsp)
<s:form action="fileUpload" enctype="multipart/form-data" method="post">
<s:file name="file" label="Select a file to upload" />
<s:submit value="Upload File" />
</s:form>
示范2:同时上传多个文件
以下是如何实现同时上传多个文件的示例代码:
1. 操作类
public class MultipleFileUploadAction extends ActionSupport {
private List<File> files;
private List<String> filesContentType;
private List<String> filesFileName;
// Getters and setters
//...
public String execute() {
for (int i = 0; i < files.size(); i++) {
File temp = files.get(i);
String filePath = "PATH_TO_SAVE_FILE/" + filesFileName.get(i);
try {
FileUtils.copyFile(temp, new File(filePath));
} catch (IOException e) {
e.printStackTrace();
return ERROR;
}
}
return SUCCESS;
}
}
2. 映射文件
<action name="multipleFileUpload" class="packageName.MultipleFileUploadAction">
<interceptor-ref name="fileUpload">
<param name="maximumSize">10485760</param>
</interceptor-ref>
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
请注意替换“packageName”为您的操作类所在的包名。
3. 页面(multipleFileUpload.jsp)
<s:form action="multipleFileUpload" enctype="multipart/form-data" method="post">
<s:file name="files" label="Select files to upload" multiple="true" />
<s:submit value="Upload Files" />
</s:form>
通过在文件输入框中使用“multiple”属性,可以选择多个文件进行上传。
希望这些示例代码能够帮助你实现Struts2多文件上传。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:struts2实现多文件上传的示例代码 - Python技术站