动态网站制作指南
[  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息



本月文章推荐
.junit使用简明手册.
.Java Servlet及Cookie的使用.
.为测试Java应用程序生成证书链.
.让XDoclet为你写存根类.
.基于服务器的Java安全产品.
.实现Java平台的三种方式.
.java基础学习:常用的ant的操作.
.基础篇:Java语言的基本组成.
.介绍JSR184(3D)中的光线概念.
.Digester 解析 XML 文档 Sample.
.Enterprise bean的开发(1).
.[翻译]-Windows CE 程序设计 (3r.
.编程基础入门:Java修饰词的总结.
.用CashFilter实现页面级缓存实践.
.使用java.util.Timer.
.使用JBoss Eclipse IDE开发J2EE应.
.六个 for 循环的Java小程序源码展.
.JBuilder在中文环境中光标问题的.
.J2EE中几种业务代理模式的实现和.
.用java学习数据结构--单链表.

分享:用Struts上传多个文件的方法

文章类别:Java教程 | 发表日期:2008-1-5 |



  最近在做Struts项目时碰到了上传多个文件的问题。在网上查了不少资料,也没有找到用Struts上传多个文件的例子。我经过几天的研究,实现了用Struts上传多个文件的功能。现在贴出来让大家共享!
  
  一。建立ActionForm
  
  package com.cnehu.struts.form;
  
  import Javax.servlet.http.HttpServletRequest;
  
  import org.apache.struts.action.ActionError;
  
  import org.apache.struts.action.ActionErrors;
  
  import org.apache.struts.action.ActionForm;
  
  import org.apache.struts.action.ActionMapping;
  
  import org.apache.struts.upload.FormFile;
  
  import org.apache.struts.upload.MultipartRequestHandler;
  
  /**
  
  * <p>
  
  * Title:UpLoadForm
  
  * </p>
  
  * <p>
  
  * Copyright: Copyright (c) 2005 techyang http://blog.csdn.net/techyang
  
  * </p>
  
  * @author techyang
  
  * @version 1.0
  
  */
  
  public class UpLoadForm extends ActionForm
  
  {
  
  public static final String ERROR_PROPERTY_MAX_LENGTH_EXCEEDED = "org.apache.struts.webapp.upload.MaxLengthExceeded";
  
  protected FormFile theFile;
  
  protected FormFile theFile2;
  
  public FormFile getTheFile()
  
  {
  
  return theFile;
  
  }
  
  public void setTheFile(FormFile theFile)
  
  {
  
  this.theFile = theFile;
  
  }
  
  public ActionErrors validate(ActionMapping mapping,
  
  HttpServletRequest request)
  
  {
  
  ActionErrors errors = null;
  
  //has the maximum length been exceeded?
  
  Boolean maxLengthExceeded = (Boolean) request
  
  .getAttribute(MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED);
  
  if ((maxLengthExceeded != null) && (maxLengthExceeded.booleanValue()))
  
  {
  
  errors = new ActionErrors();
  
  errors.add(ERROR_PROPERTY_MAX_LENGTH_EXCEEDED, new ActionError(
  
  "maxLengthExceeded"));
  
  }
  
  return errors;
  
  }
  
  /**
  
  * @return Returns the theFile2.
  
  */
  
  public FormFile getTheFile2()
  
  {
  
  return theFile2;
  
  }
  
  /**
  
  * @param theFile2 The theFile2 to set.
  
  */
  
  public void setTheFile2(FormFile theFile2)
  
  {
  
  this.theFile2 = theFile2;
  
  }
  
  }
  
  二。建立ActionServlet
  
  package com.cnehu.struts.action;
  
  import java.io.*;
  
  import javax.servlet.http.*;
  
  import org.apache.struts.action.*;
  
  import org.apache.struts.upload.FormFile;
  
  import com.cnehu.struts.form.UpLoadForm;
  
  /**
  
  * <p>
  
  * Title:UpLoadAction
  
  * </p>
  
  * <p>
  
  * Copyright: Copyright (c) 2005 techyang http://blog.csdn.net/techyang
  
  * </p>
  
  * @author techyang
  
  * @version 1.0
  
  */
  
  public class UpLoadAction extends Action
  
  {
  
  public ActionForward execute(ActionMapping mapping, ActionForm form,
  
  HttpServletRequest request, HttpServletResponse response)
  
  throws Exception
  
  {
  
  String encoding = request.getCharacterEncoding();
  
  if ((encoding != null) && (encoding.equalsIgnoreCase("utf-8")))
  
  {
  
  response.setContentType("text/Html; charset=gb2312");//假如没有指定编码,编码格式为gb2312
  
  }
  
  UpLoadForm theForm = (UpLoadForm) form;
  
  FormFile file = theForm.getTheFile();//取得上传的文件
  
  FormFile file2=theForm.getTheFile2();
  
  try
  
  {
  
  /*
  
  * 取当前系统路径D:\Tomcat5\webapps\coka\ 其中coka 为当前context
  
  */
  
  String filePath = this.getServlet().getServletContext()
  
  .getRealPath("/");
  
  InputStream stream = file.getInputStream();//把文件读入
  
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  
  /*
  
  * 建立一个上传文件的输出流 假如是Linux系统请把UploadFiles后的"\\"换成"/"
  
  */
  
  OutputStream bos = new FileOutputStream(filePath +
  
  "UploadFiles\\"+file.getFileName());
  
  //D:\Tomcat5\webapps\coka\UploadFiles\DSC01508.JPG
  
  /* System.out.println(filePath +
  
  "UploadFiles\\"+file.getFileName());
  
  System.out.println(filePath);*/
  
  request.setAttribute("fileName",filePath + "/"
  
  + file.getFileName());
  
  int bytesRead = 0;
  
  byte[] buffer = new byte[8192];
  
  while ((bytesRead = stream.read(buffer, 0, 8192)) != -1)
  
  {
  
  bos.write(buffer, 0, bytesRead);//将文件写入服务器
  
  }
  
  bos.close();
  
  stream.close();
  
  InputStream stream2 = file2.getInputStream();//把文件读入
  
  ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
  
  OutputStream bos2 = new FileOutputStream(filePath +
  
  "UploadFiles\\"+file2.getFileName());//建立一个上传文件的输出流
  
  int bytesRead2 = 0;
  
  byte[] buffer2 = new byte[8192];
  
  int i=0;
  
  while ((bytesRead2 = stream2.read(buffer2, 0, 8192)) != -1)
  
  {
  
  bos2.write(buffer2, 0, bytesRead2);//将文件写入服务器
  
  }
  
  bos2.close();
  
  stream2.close();
  
  } catch (Exception e)
  
  {
  
  System.err.print(e);
  
  }
  
  return mapping.findForward("display");
  
  }
  
  }
  
  三。建立上传用的jsp文件 upload.jsp
  
  <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
  
  <html:html>
  
  <head>
  
  <title>用Struts上传文件</title>
  
  </head>
  
  <body>
  
  <html:form action="/uploadsAction" enctype="multipart/form-data">
  
  <html:file property="theFile"/>
  
  <html:file property="theFile2"/>
  
  <html:submit/>
  
  </html:form>
  
  </body>
  
  </html:html>
  
  四。配置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>
  
  <data-sources />
  
  <form-beans >
  
  <form-bean name="uploadsForm" type="com.cnehu.struts.form.UpLoadForm" />
  
  </form-beans>
  
  <global-exceptions />
  
  <global-forwards >
  
  </global-forwards>
  
  <action-mappings >
  
  <action name="uploadsForm" type="com.cnehu.struts.action.UpLoadAction" path="/uploadsAction">
  
  <forward name="display" path="/display.jsp" />
  
  </action>
  
  </action-mappings>
  
  </struts-config>

上一篇:Struts标签中的多层logic:iterator详解 人气:354
下一篇:struts源代码阅读(Commons-Beanutils包) 人气:346
点击此处浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-5-20 站长俱乐部新闻发布系统 v5.19
2008-5-20 DotNetTextBox网页编辑器 v3.4.7
2008-5-20 phpMyFAQ v2.5.0 多国语言版
2008-5-20 DreamArticle 文章管理系统 v2.0
2008-5-20 Drupal v7.xdev Build080518
2008-5-20 逐迹内容管理系统AspxNuke v2.0.
2008-5-20 ajax奥运留言本 v1.0
2008-5-20 QQ空间博客全自动挂机互踩好友
2008-5-20 网人采集 v1.2.0
2008-5-7 Windows XP SP3 官方英文版
2008-5-7 Windows XP SP3 官方香港中文版
2008-5-7 Windows XP SP3 官方繁体中文版
2008-5-7 Windows XP SP3 官方简体中文版
2008-4-30 Multiple Unzip Wizard 1.02
2008-4-30 Multiple Unrar Wizard 1.0.0
2008-4-30 WinZip Install/Try/Uninstall a
2008-4-30 ZIP压缩文件修复器WzipFix 2.0
2008-4-30 Pentazip 6.01 Build 189 For Wi
  发表评论
姓 名: 验证码: [ 全部贴吧 ] [ 浏览评论 ]
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号