快速业务通道

Struts1.x系列教程(8):上传单个文件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

Struts1.x系列教程(8):上传单个文件

时间:2011-01-10 银河使者

在Web程序中的上传文件的功能一般会使用<input type=file.../>标签在客户端显示输入要上传的文件名的用户接口。如果读者使用过JSP/Servlet来处理客户端上传的文件就会知道,实现这个功能并不是很容易。而在Struts中为我们提供了一种机制,可以非常方便地将客户端上传的文件保存在服务端。

在Struts Html标签库中提供了一个<html:file>标签,可以和FormFile类型的属性一起使用。通过这个属性返回的FormFile对象,就可以很方便地获得上传文件的InputStream对象,并做进一步地处理。

在Struts中,一个FormFile对象代表一个上传的文件。FormFile实际上是一个接口,我们可以在org.apache.struts.upload包中找到这个接口。FormFile接口有如下五个常用的方法:

1.getInputStream()方法

这个方法用于获得上传文件的java.io.InputStream对象,我们可以从这个InputStream对象中读取上传文件的数据,并将其写到服务端指定的路径下。

2.getFileData()方法

这个方法用于将上传文件的整个内容放到一个byte类型的数组中,如果上传文件的尺寸比较小的话,使用这个方法可以很方便地将上传文件保存到在服务端的指定路径中。

3.getFileName()方法

这个方法用于获得上传文件的文件名(不包括文件在客户机的路径部分)。

4. getFileSize()方法

这个方法用于获得上传文件的字节数。

5. destroy()方法

用于销毁所有和当前上传文件相关的资源。

下面的例子演示了如何使用<html:file>标签和FormFile对象来上传单个文件。实现这个例子需要如下六步:

【第1步】建立上传文件的JSP页面

在<samples工程目录>目录中建立一个uploadFile.jsp文件,代码如下:

<%@ page pageEncoding="GBK"%>  <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>  <html>    <head>      <title>上传单个文件(文件大小不能超过2M) </title>    </head>    <body><%-- 在<html:form>标签中必须加enctype="multipart/form-data"  --%>      <html:form enctype="multipart/form-data" action="uploadFile">         <html:file property="myFile"/><p>  <%-- 使用<html:file>标签让用户输入上传文件名  --%>        <html:submit value="上传"/>      </html:form>    </body>  </html>

Struts1.x系列教程(8):上传单个文件(2)

时间:2011-01-10 银河使者

【第2步】建立ActionForm的子类

在<samples工程目录>"src"actionform目录中建立一个UploadForm.java文件,代码如下:

package actionform;  import org.apache.struts.action.*;  import org.apache.struts.upload.FormFile;  public class UploadForm extends ActionForm  {        private FormFile myFile;  // 这个myFile代表要上传的文件        public FormFile getMyFile()      {          return myFile;      }      public void setMyFile(FormFile myFile)      {          this.myFile = myFile;      }  }

【第3步】建立Struts动作类(Action的子类)

在Struts中,一般在Struts的动作类中处理上传的文件。在<samples工程目录>"src"action目录中建立一个UploadAction.java文件,代码如下:

package action;  import javax.servlet.http.*;  import org.apache.struts.action.*;  import org.apache.struts.upload.FormFile;

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号