- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Struts1.2完成单文件上传讲解
Struts1 文件上传 在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=/tags-... 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工程目录srcactionform目录中建立一个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工程目录srcaction目录中建立一个UploadAction.java文件,代码如下: ? package action; ? import javax.servlet.htt
文档评论(0)