在Struts 2中实现文件上传

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。从而我们就能够以本地文件方式的操作浏览器上传的文件。

具体实现

前段时间Apache发布了Struts 2.0.6 GA,所以本文的实现是以该版本的Struts作为框架的。以下是例子所依靠类包的列表:

清单1 依靠类包的列表

首先,创建文件上传页面FileUpload.jsp,内容如下:

<% @ page language = " Java " contentType = " text/Html; charset=utf-8 " pageEncoding = " utf-8 " %>

<% @ taglib prefix = " s " uri = " /struts-tags " %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html XMLns ="http://www.w3.org/1999/xhtml" >

< head >

< title > Struts 2 File Upload </ title >

</ head >

< body >

< s:form action ="fileUpload" method ="POST" enctype ="multipart/form-data" >

< s:file name ="myFile" label ="Image File" />

< s:textfield name ="caption" label ="Caption" />

< s:submit />

</ s:form >

</ body >

</ html >

清单2 FileUpload.jsp

在FileUpload.jsp中,先将表单的提交方式设为POST,然后将enctype设为multipart/form-data,这并没有什么非凡之处。接下来,<s:file/>标志将文件上传控件绑定到Action的myFile属性。

其次是FileUploadAction.java代码:

package tutorial;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.Date;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class FileUploadAction extends ActionSupport {

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航