WEB开发网
开发学院软件开发Java Struts2文件上传(二) 深入FileUploadInterceptor 阅读

Struts2文件上传(二) 深入FileUploadInterceptor

 2009-09-18 00:00:00 来源:WEB开发网   
核心提示: 这里我们配置了fileUpload拦截器,我们还必须吧dufaultStack加上,Struts2文件上传(二) 深入FileUploadInterceptor(4),由于defaultStack中已经包含了fileUpload拦截器,所以fileUpload拦截器会执行俩遍,要是有上传进度条能

这里我们配置了fileUpload拦截器,我们还必须吧dufaultStack加上,由于defaultStack中已经包含了fileUpload拦截器,所以fileUpload拦截器会执行俩遍,所以我们会在日志信息中看到俩次清除临时文件的记录。

UploadAction:

Java代码   

public class UploadAction extends ActionSupport { 
    //必须的参数,参数名与表单名相同,如果一个表单名对应多个上传文件, 
    //则必须为数组或List 
 private File[] upload; 
    //必须的参数,格式:表单名+ContentType,表示上传文件类型 
 private String[] uploadContentType; 
    //必须的参数,格式:表单名+FileName,表示上传的文件名 
 private String[] uploadFileName; 
    //文件保存目录 
 private String savePath; 
 
 public LoginAction() { 
 } 
 
 public String upload() throws Exception { 
 for (int i=0;i<getUpload().length;i++) { 
  FileInputStream in = new FileInputStream(getUpload()[i]); 
  FileOutputStream out = new FileOutputStream(getSavePath()+"\\"+getUploadFileName()[i]); 
            //将数据拷贝到上传目录,这里没有必要使用缓冲流,因为IOUtils工具类已经使用了缓存 
  IOUtils.copy(in, out); 
 } 
 return SUCCESS; 
 } 
。。。。。。get/set方法。。。。

页面表单示例:

Html代码    

<!-- method一定要为post,enctype一定要为 multipart/form-data,表单名一定要和Action中的参数名相同--> 
<s:form method="post" id="loginForm" action="Upload" 
 enctype="multipart/form-data"> 
<table style="border: 1px solid;" align="center"> 
 <thead> 
 <tr> 
  <td style="text-align: center" colspan="2">文件上传</td> 
 </tr> 
 </thead> 
 <tbody> 
 <tr> 
  <td>用户名:</td> 
  <td><input type="text" name="username"></input></td> 
 </tr> 
 <tr> 
  <td>密码:</td> 
  <td><input type="text" name="password"></input></td> 
 </tr> 
 <tr> 
  <td colspan="2"><input type="file" name="upload" /></td> 
 </tr> 
 <tr> 
  <td colspan="2"><input type="file" name="upload" /></td> 
 </tr> 
 <tr> 
  <td colspan="2"><input type="file" name="upload" /></td> 
 </tr> 
 <tr> 
  <td><input type="button" value="Upload" id="upload" /></td> 
  <td><input type="button" value="Cancel" id="cancelUpload" /></td> 
 </tr> 
 </tbody> 
</table> 

这样,一个简单的文件上传就实现了,但是感觉文件上传无声无息,特别上传大文件,等了很长时间才知道有没有上传成功,要是有上传进度条能及时显示上传进度,这样的文件上传的功能才能算完善了,上传进度条的功能下篇再写。

上一页  1 2 3 4 

Tags:Struts 文件 上传

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接