免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 770 | 回复: 0
打印 上一主题 下一主题

struts 实现文件上传 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-28 15:32 |只看该作者 |倒序浏览

fileLoad.jsp
代码如下:
fileLoad.jsp
JBuilder Generated Struts JSP for ActionForm forms.LoadForm
//对应于ActionFrom的FormFile file属性。
  name:
  size:
LoadForm的代码:
package forms;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
public class LoadForm extends ActionForm {
    private FormFile file;
    private String fname;
    private String size;
    public FormFile getFile() {
        return file;
    }
    public void setFile(FormFile file) {
        this.file = file;
    }
    public void setSize(String size) {
        this.size = size;
    }
    public void setFname(String fname) {
        this.fname = fname;
    }
    public String getFname() {
        return fname;
    }
    public String getSize() {
        return size;
    }
    public ActionErrors validate(ActionMapping actionMapping,
                                 HttpServletRequest httpServletRequest) {
            /** @todo: finish this method, this is just the skeleton.*/
        return null;
    }
    public void reset(ActionMapping actionMapping,
                      HttpServletRequest servletRequest) {
    }
}
LoginAction代码如下:
package actions;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import forms.LoadForm;
import org.apache.struts.action.Action;
import org.apache.struts.upload.FormFile;
import java.io.*;
public class LoadAction extends Action {
    public ActionForward execute(ActionMapping actionMapping,
                                 ActionForm actionForm,
                                 HttpServletRequest servletRequest,
                                 HttpServletResponse servletResponse)throws Exception {
        LoadForm loadForm = (LoadForm) actionForm;
       FormFile ff=loadForm.getFile();
       if(ff==null)
       {
           return actionMapping.findForward("success");
       }
       String fname=ff.getFileName();
       String size=Integer.toString(ff.getFileSize())+"bytes";
       InputStream in=ff.getInputStream();
       OutputStream out=new FileOutputStream("/"+fname);//"/"表示保存的路径可以修改为"load/"
       int bytesRead=0;
       byte[] buffer=new byte[8192];
       while((bytesRead=in.read(buffer,0,8192))!=-1)
       {
           out.write(buffer,0,bytesRead);
       }
       out.close();
       in.close();
      loadForm.setFname(fname);
      loadForm.setSize(size);
      ff.destroy();
      return actionMapping.findForward("success");
      }
}
struts-config.xml代码:
  
   
  
  
   
  
说明:标签可以方便的实现文件上传功能。
有以下几点需要注意:
1: 必须嵌套在标签中。
2:标签的method的属性必须设为"post".
3:标签的编码类型enctype属性必须为"multipart/form-data"。
4:标签必须设为property属性,这个属性和ActionForm Bean中FormFile类型的属性对应。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/19726/showart_146971.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP