Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > struts 实现文件上传
【标  题】:struts 实现文件上传
【关键字】:struts
【来  源】:http://www.cublog.cn/u/19726/showart.php?id=146971

struts 实现文件上传

Your Ad Here

fileLoad.jsp

代码如下:

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ page contentType="text/html; charset=GBK" %>
<html:html>
<head>
<title>
fileLoad.jsp
</title>
</head>
<body>
<h1>JBuilder Generated Struts JSP for ActionForm forms.LoadForm</h1>
<p>
<html:form action="/loadAction.do" method="POST" enctype="multipart/form-data">
<html:file property="file"/><br />//对应于ActionFrom的FormFile file属性。

<html:submit property="submit" value="Submit"/>
<html:reset value ="Reset"/>
</html:form>
<p>
<logic:notEmpty name="loadForm" property="fname">
  name:<bean:write name="loadForm" property="fname"/>
  size:<bean:write name="loadForm" property="size"/>
</logic:notEmpty>
</p>
</body>
</html:html>
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代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
  <form-beans>
    <form-bean name="loadForm" type="forms.LoadForm" />
  </form-beans>
  <action-mappings>
    <action name="loadForm" path="/loadAction" scope="request" type="actions.LoadAction" input="/fileLoad.jsp">
<forward name="success" path="/fileLoad.jsp">
</forward>
</action>  </action-mappings>
</struts-config>

说明:<html:file>标签可以方便的实现文件上传功能。

有以下几点需要注意:

1: <html:file>必须嵌套在<html:form>标签中。

2:<html:form>标签的method的属性必须设为"post".

3:<html:form>标签的编码类型enctype属性必须为"multipart/form-data"。

4:<html:file>标签必须设为property属性,这个属性和ActionForm Bean中FormFile类型的属性对应。

struts中实现分页:【上一篇】
sort an IP-address list:【下一篇】
【相关文章】
  • struts中实现分页
  • struts1.2的表单验证一点体会
  • Tomcat+MySql+Struts中文问题绝妙的解决方案
  • Myeclipse下struts开发过程中的总结
  • javabean的妙用-eclipse结合hibernate插件、struts插件快速生成源代码
  • 我们公司的struts开发方式
  • Struts用户和开发指南
  • hibernate+struts+mysql+eclipse工程
  • struts与hibernate协同工作
  • struts2最新动态
  • 【随机文章】
  • Jive论坛与Spring框架的经典结合
  • 晨曦讨论组通信软件 v1.1.1.6 (C/S代码)
  • XPCOM是什么?
  • 如何美白皮肤美白怎样美白美白方法美白秘方美白去斑
  • Irissoft大头贴1.0版发布[原创]
  • 用Qmail构建电子邮件系统
  • 操作installshield 3.x的压缩包操作及修正过程说解
  • 设计模式培训1-模式与原则
  • FLASH调用ASP生成的XML数据
  • 利用协议分析工具学习TCP/IP
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.