用webwork的fileUploadInterceptor实现文件上传功能
1、upload.jsp
<ww:form name="form1" action="upload.action" method="post" enctype="multipart/form-data">
<ww:file name="file" label="picture"/>
<ww:submit />
</ww:form>
2、DocUpload.java
public class DocUpload extends ActionSupport {
//upload file
/*file可以任意命名,但是其他两个变量的命名规则是file+ContentType和
file+FileName,或者如果命名这里不注意,则在变量的setter和getter那里就要注意了,一定要是getFileFileName和getFileContentType*/
private String fileContentType; //文件的类型
private String fileFileName; //文件名
private File file; //文件
private User user;
public String uploadFile()
{
Map session=ActionContext.getContext().getSession();
if(session!=null)
user=(User)session.get("user");
upload();
System.out.println("caption="+fileFileName);
return SUCCESS;
}
//上传文件
private void upload()
{
if(file!=null)
{
FileOutputStream outputStream;
try {
ResourceBundle rb = ResourceBundle.getBundle("config");
String fileDir = rb.getString("saveDir")+user.getId()+File.separator;
String filePath=fileDir+fileFileName;
try{
//创建目录
File f=new File(fileDir);
f.mkdirs();
}catch(Exception e)
{
e.printStackTrace();
}
outputStream = new FileOutputStream(filePath);
FileInputStream fileIn = new FileInputStream(file);
byte[] buffer = new byte[1024];
int len;
while ((len = fileIn.read(buffer)) > 0)
{
outputStream.write(buffer, 0, len);
}
fileIn.close();
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("uploadfile name="+fileFileName);
}
else
{
System.out.println("file is null!");
}
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String contentType) {
this.fileContentType = contentType;
}
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileName) {
this.fileFileName = fileName;
}
3、xwork.xml中的相关配置
<action name="upload" class="DocUpload" method="uploadFile">
<interceptor-ref name="fileUpload" />
<interceptor-ref name="defaultStack" /> <!-- must be defaultStack -->
<result name="success">/sys/uploadsuccess.jsp</result>
<result name="input">/sys/upload.jsp</result>
</action>
4、webwork.properties的相关配置
webwork.multipart.parser=jakarta
#file upload temp save
webwork.multipart.saveDir=d:/temp
其中,webwork.multipart.parser是设置处理上传的类的,有cos jakarta pell 三种设置, jakarta是默认的设置;注意设置了相应的类要把相应的jar放进来;
webwork.multipart.saveDir是设置临时保存文件的文件夹;
5、config.properties用来设置上传图片的保存路径,不是webwork上传功能必须的配置
#windows
saveDir=D:/Tomcat 5.5/webapps/pxbn/upload/
#linux
#saveDir=/home/web/tomcat/webapps/pxbn/upload/
相关推荐
### WebWork 上传文件知识点详解 #### 一、WebWork框架简介 WebWork是一个基于Java的开源Web应用程序框架,它支持MVC(Model-View-Controller)架构模式,能够简化Web应用开发流程。WebWork提供了丰富的特性,如...
File serverFile = new File("/path/to/upload/directory/" + fileName); FileUtil.copyFile(filePath, serverFile); // 保存文件信息到数据库等操作... return mapping.findForward("success"); } else { ...
<form action="upload.action" method="post" enctype="multipart/form-data"> <input type="file" name="file" /> 上传" /> ``` 这里的`enctype="multipart/form-data"`是关键,它告诉浏览器以多部分数据格式...
在IT行业中,WebWork是一个基于Java的开源MVC(Model-View-Controller)框架,它提供了灵活的控制层逻辑和强大的数据绑定功能。文件上传和下载是Web应用程序中常见的功能,尤其是在用户交互丰富的环境中。本篇文章将...
描述: webwork-2.1.7.jar 修改: package ...修复bug:upload empty file cause nullponit exception 博文链接:https://littlerain.iteye.com/blog/200701
你需要创建一个ActionForm类,包含`java.io.File`或`org.apache.struts.upload.FormFile`类型的属性来接收上传的文件。 2. **上传配置**:在WebWork的配置文件(如struts-config.xml或xwork.xml)中,你需要配置...
这里定义了一个名为`upload`的Action,当用户提交表单时,WebWork会调用`UploadAction`类的execute方法。 3. **编写UploadAction** 创建`UploadAction`类,继承自WebWork的ActionSupport。这个类需要处理文件上传...
public void setUploadFiles(File uploadFiles) { ... } // 同理,其他两个属性的getter和setter ``` 3. **配置xwork.xml** 需要在`xwork.xml`中配置`params`拦截器,以处理文件上传: ```xml ...
<form action="upload.action" method="post" enctype="multipart/form-data"> <input type="file" name="files" multiple> 上传"> ``` 注意,表单的`enctype`属性必须设置为`multipart/form-data`,这是处理...
在.NET框架中,C#语言提供了丰富的功能来实现文件上传和图片上传的处理。这篇文章将深入探讨如何使用C#在Web应用中...文件`0302_WebWork_UploadFiles`可能包含实现这些功能的示例代码,你可以参考学习和进一步实践。
<input type="file" name="uploadFiles"> <input type="submit" value="Upload"> ``` 注意`enctype="multipart/form-data"`,这是上传文件时必须的属性。 2. **后台Action**:在对应的Action类中,我们需要...
File storeFile = new File("/path/to/upload/directory/" + fileName); item.write(storeFile); // 在这里可以处理上传后的逻辑,如保存数据库记录等 } } } catch (FileUploadException e) { throw new ...
Struts2不仅继承了Struts1的优点,还吸收了WebWork等其他框架的优点,支持拦截器、类型转换、输入验证等特性,使开发者能够更加专注于业务逻辑的实现。 #### 二、多文件上传的基本原理 在Web应用中,文件上传通常...
描述: webwork-2.1.7.jar 修改: package ...修复bug:upload empty file cause nullponit exception 博文链接:https://littlerain.iteye.com/blog/200701
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 ...
6. **文件上传(File Upload)**:Struts 2提供了一套完整的文件上传解决方案,包括单个文件和多个文件的上传,以及处理文件大小限制和类型验证。 7. **异常处理(Exception Handling)**:Struts 2提供了异常处理机制...
它继承了Struts1的优点,并吸收了其他框架如WebWork的优势,提供了更强大的控制层和更灵活的架构。Struts2允许开发者通过拦截器(Interceptor)机制来处理请求,实现业务逻辑和视图的分离,简化了大型Web应用的开发...
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 ...
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 ...
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form...