Struts提供我们方便地将客户端上传的文件处理

以下是本人的一些分享,我热爱编程,希望能多交编程的爱好者,如果你也是其中一名,那么请加好友,大家关注一下,下面的文章是自己觉得一些有用的东西,留下来给自己当笔记,当然也希望能帮助到你,首先感谢你的阅读~!
  在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="" 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>

  第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;

  }

  }
在互联网时代,JAVA语言已经是使用最广泛的服务器端语言。随着3G、物联网时代的到来,JAVA语言并不会“过时”,相反,JAVA语言会在新的业务领域有着更辉煌的发展前景。
广州达内凭借不断创新的“达内教学系统(Tarena Teaching System - TTS)”,达内科技已在中国20多个主要城市建立了40多家培训中心,累计为IBM、微软、摩托罗拉、华为、中软、用友、Yahoo、阿里巴巴、 TOM、新浪、搜狐、百度、联想、亚信等知名企业培养输送了近9万名学员,迅速成长为中国高端IT培训领军品牌。

广州达内,www.gztarena.com www.gdtarena.com www.s-tarena.com
原文地址:https://www.cnblogs.com/javaitpx/p/2965458.html