Struts是应用于Web层的框架,在《潜入浅出Struts》中介绍了Struts的原理与工作流程,掌握了原理之后,还需要掌握Struts的一些具体技术细节。上传文件是我们常用的一个技术,上传图片与文件的原理是相同的。提供一个链接http://blog.csdn.net/muzizhuben/article/details/6444952,可以根据这篇文章更全面的学习Struts文件上传功能。
下面是一个上传文件的具体实现:
UploadActionForm文件
public class UploadActionForm extends ActionForm {
private String title;
//上传的文件必须采用FormFile声明
private FormFile myfile;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public FormFile getMyfile() {
return myfile;
}
public void setMyfile(FormFile myfile) {
this.myfile = myfile;
}
}
UploadAction代码
/**
* 上传Action
* @author Administrator
*
*/
public class UploadTestAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//转换表单
UploadActionForm uaf = (UploadActionForm)form;
//打印表单上传的文件名
System.out.println("fileName=" + uaf.getMyfile().getFileName());
//建立一个输出流,将上传的文件传到C盘
FileOutputStream fos = new FileOutputStream("c:\\" +uaf.getMyfile().getFileName());
//上传文件内容
fos.write(uaf.getMyfile().getFileData());
fos.flush();
fos.close();
//转向成功页面
return mapping.findForward("success");
}
}
Struts-config.xml文件
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
<form-bean name="uploadForm" type="com.bjpowernode.struts.UploadActionForm"/>
</form-beans>
<action-mappings>
<action path="/upload"
type="com.bjpowernode.struts.UploadTestAction"
name="uploadForm"
scope="request">
<forward name="success" path="/upload_success.jsp"/>
</action>
</action-mappings>
<!--控制上传文件的大小 -->
<controller maxFileSize="10M"/>
</struts-config>
Upload.jsp页面