Struts实现多文件上传
在显示开发中我们往往在一个页面要实现多个文件的同时上传,今天和大家分享Struts实现的多文件上传方法。
一、构建html页面
<form action="TestManyFileUploadAction" method="post" enctype="multipart/form-data">
文件1:<input type="file" name="file"><br>
文件2:<input type="file" name="file"><br>
文件3:<input type="file" name="file"><br>
<input type="submit" value="上传">
</form>
这里要注意 enctype类型
enctype="multipart/form-data"
二、程序实现
package com.struts.action;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
/*
* 单个文件上传
*/
public class TestFileUploadAction extends ActionSupport
{
private File file;
// 得到文件名, 命名规则:文件名+"FileName"后缀。
private String fileFileName;
// 得到文件类型 , 固定后缀
private String fileContentType;
public String getFileContentType()
{
return fileContentType;
}
public void setFileContentType(String fileContentType)
{
this.fileContentType = fileContentType;
}
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;
}
@Override
public String execute() throws Exception
{
if (file != null)
{
try
{
String realPath = ServletActionContext.getServletContext()
.getRealPath("/uploadfile");
File saveFile = new File(realPath, fileFileName);
if (!saveFile.getParentFile().exists())
{
saveFile.getParentFile().mkdirs();
}
FileUtils.copyFile(file, saveFile);
System.out.println("路径:" + realPath);
System.out.println("类型:" + fileContentType);
}
catch (Exception e)
{
System.out.println(e);
}
}
return "success";
}
}
三、编写配置文件
<action name="TestFileUploadAction" class="com.struts.action.TestFileUploadAction">
<result name="success">/index.jsp</result>
</action>
四、观看效果
有三个文件我们上传测试
上传成功!