针对struts2的文件上传功能坐的实例
java:
package hs.struts2.fileupload.action;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
/**
* struts2_单个文件上传
* @author zKF38493
*
*/
public class FileUploadAction {
//用于在上传文件名后加一,防止文件被覆盖
private static int count=0;
//username属性
private String username;
//File对象
private File uploadFile;
//用于存放文件文件名
private String uploadFileFileName;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public File getUploadFile() {
return uploadFile;
}
public void setUploadFile(File uploadFile) {
this.uploadFile = uploadFile;
}
public String getUploadFileFileName() {
return uploadFileFileName;
}
public void setUploadFileFileName(String uploadFileFileName) {
this.uploadFileFileName = uploadFileFileName;
}
public String execute() throws IOException{
//获取从页面上传来的username值
System.out.println("username:"+username);
//取得上传后文件存放路径
String tar="F://test";
File tarFile=new File(tar,(username+count+".txt"));
count+=1;
//拷贝file对象,从而实现上传文件
FileUtils.copyFile(uploadFile, tarFile);
return "upload";
}
}
jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>struts2单个文件上传</title>
</head>
<body>
<s:form action="fileupload" method="post" enctype="multipart/form-data" >
<s:label value="username:"></s:label>
<s:textfield name="username"></s:textfield>
<s:file name="uploadFile"></s:file>
<s:submit value="上传"></s:submit>
</s:form>
</body>
</html>
struts.xml
<!-- struts2单个文件上传 --> <action name="fileupload" class="hs.struts2.fileupload.action.FileUploadAction"> <result name="upload">/index.jsp</result> </action>