前台:
<form action="" method="post" enctype="multipart/form-data">
标题: <input type="text" name="title" />
文件: <input type="file" name="myfile" />
<input type="submit" value="提交" />
</form>
后台:
form:
class UploadActionForm
private String title;
private FormFile myfile;
action:
UploadActionForm uaf= (UploadActionForm)form;
String title = uaf.getTitle();
FormFile myFile = uaf.getMyfile(); //得到输入流
if(myFile != null){
logger.info(myFile.getFileName());
FileOutputStream fos = new FileOutputStream("c://" + myFile.getFileName()); //创建输出流,将文件输出到C盘中,文件名不变
fos.write(myFile.getFileData); //开始写数据
fos.flush();
fos.close();
}
注意1:
如果需要对上传的文件进行限制,那么需要在struts-config.xml中做配置,即增加与<action-mappings>标签同级别的标签如下:
<controller maxFileSize="10M" nocache="true" />
注意2:
前台页面上通过 EL 表达式可以直接取得 ActionForm / DynaActionForm 中的值,例如
${uploadForm.myfile.fileName} 就可以取得文件名了 // uploadForm 为 struts-config.xml中 <form-bean> 的 name 的名字