java struts上传文件_Struts2文件上传简介

文件上传是指将本地文件上传到服务器的指定目录下。使用 Struts2 框架进行文件上传时,首先需要对 form 表单进行设置,将其 enctype 属性设置为 multipart/form-data,method 属性设置为 post,并在

标签中使用 标签作为文件选择框上传文件。

文件上传页面的示例代码如下所示:

在上述代码中,

标签的 action 属性用于指定表单提交时对应的 action 方法,method 属性用于指定表单的提交方式(包括 GET 和 POST 两种提交方式,默认提交方式是 GET),而 enctype 属性的取值决定了表单数据的编码方式。通常 enctype 属性有三个属性值,具体如下。

1)application/x-www-form-urlencoded

该值为默认的编码方式,它只处理表单域中的 value 属性,采用这种编码方式的表单会将表单域的值处理成 URL 编码方式。这种编码方式按 ISO-8859-1 的编码方式将表单上传到服务器,只是此种编码方式上传不了文件。

2)multipart/form-data

这种编码方式会以二进制流的方式处理表单数据,并且它会把文件域指定文件的内容也封装到请求参数中。在进行文件上传时,采用的就是此种方式。

3)text/plain

主要作用是直接通过表单发送邮件,目前已不再采用。

设置完 form 表单后,还需要在 Action 类中编写相应的代码。文件上传 Action 类的示例代码如下所示:

public class FileUploadAction extends ActionSupport{

private File xxx; // 用户上传的文件

private String xxxContentType; //上传文件的类型

private String xxxFileName; //上传文件的名称

//此处省略三个属性的getter和setter方法

public String execute() throws Exception{

//此处省略具体执行的方法

return SUCCESS;

}

}

在上述代码中,包括三个类型的属性,具体如下。

File 类型的属性 xxx:该属性用于指定上传文件的内容。这里将该属性假设指定为 xxx。

String 类型的属性 xxxFileName:该属性名称必须为 xxxFileName,其中 xxx 表示 File 类型的属性名称,该属性用于指定上传文件名。

String 类型的属性 xxxContentType:该属性名称必须为 xxxContentType,其中 xxx 表示 File 类型的属性名称,该属性用于指定上传文件的文件类型。

需要注意的是,上述代码中的 xxx 指 JSP 页面中 file 标签的名字。

最后,在 struts.xml 中需要对 Action 进行配置,其配置方式与其他 Action 的配置相似,只是一般要在 Action 的配置中加入文件过滤拦截器 fileUpload。fileUpload 拦截器在 struts-default 中已经配置,使用时需要重新配置。struts.xml 配置信息的示例代码如下所示:

/result.jsp

4194304

bmp,txt

text/plain,application/msword,image/jpeg

在上述配置代码中,使用了 fileUpload 的 maximumSize、allowedExtension 和 allowedTypes 三个参数,分别对上传文件进行了限制。

其中 maximumSize 用于指定允许上传文件的文件大小,单位是字节;allowedExtension 用于指定上传文件的扩展名;allowedTypes 用于指定允许上传文件的类型,当有多个文件类型时,用逗号隔开即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值