java struts上传文件_Struts2 实现文件上传

单个文件上传

关于如何创建Struts2项目:Struts2 初体验。

一、创建jsp页面:

注意!要上传文件,表单必须添加 enctype 属性,如下:  enctype="multipart/form-data"

index.jsp 代码如下:

Insert title here

二、创建Action类:

1. 添加三个私有字段,并添加相应的get,set方法。

private File file; ——上传的文件,变量名对应页面上"file"input的name属性值。类型为java.io.File

private String fileContentType;——上传文件的格式类型名,变量名格式为:页面上"file"input的name属性值+ContentType

private String fileFileName——上传的文件名,变量名格式为:页面上"file"input的name属性值+fileFileName。

2. 使用struts2提供的FileUtils类拷贝进行文件的拷贝。FileUtils类位于org.apache.commons.io包下。

3. 在项目目录下的WebContent目录下添加 upload 文件夹,用于存放客户端上传过来的文件,对应第15行代码。

Upload.java代码如下:

1 importjava.io.File;2 importjava.io.IOException;3 importorg.apache.commons.io.FileUtils;4 importorg.apache.struts2.ServletActionContext;5 importcom.opensymphony.xwork2.ActionSupport;6

7 public class Upload extendsActionSupport{8 privateFile file;9 privateString fileContentType;10 privateString fileFileName;11

12 @Override13 public String execute() throwsException {14 //得到上传文件在服务器的路径加文件名

15 String target=ServletActionContext.getServletContext().getRealPath("/upload/"+fileFileName);16 //获得上传的文件

17 File targetFile=newFile(target);18 //通过struts2提供的FileUtils类拷贝

19 try{20 FileUtils.copyFile(file, targetFile);21 } catch(IOException e) {22 e.printStackTrace();23 }24 returnSUCCESS;25 }26

27 //省略get,set方法...........

28

29 }

三、在struts.xml中添加相应的配置代码。

struts.xml代码如下:

/p>

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

index.jsp

四、测试。

启动服务器,进入index页面。

0410754876b0e619b34dd36a7512930f.png

选择一改图片,点击上传提交表单。

1db678ecd782319370160c1d5ee08129.png

打开upload文件夹(注意,这里指的是web服务器下的目录,如我用的web服务器是tomcat安装在电脑D盘,项目名称为“Struts2Upload”那么其路径为:D:\apache-tomcat-7.0.40\webapps\Struts2Upload\upload)可以看到刚才选中的图片已经上传到该目录下了。

f7f3a250c0f66b74af87ad4e320c0c9b.png

上传多个文件

一、修改页面文件

增加继续添加按钮和 addfile() 方法,让页面可以通过javascript增加 input 标签。

修改后的 index.jsp代码如下:

1

2 pageEncoding="UTF-8"%>

3

4

5

6

7

8 //添加javascript方法 addfile() 在页面中境加input标签、

9 functionaddfile(){10 varfile=document.createElement("input");11 file.type="file";12 file.name="file";13 document.getElementById("fileList").appendChild(file);14 document.getElementById("fileList").appendChild(document.createElement("br"));15 }16

17

Insert title here

18

19

20

21

22

23

24

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值