struts2单文件上传和多文件上传的实现

一.单文件上传
添加jar包
commons-fileupload-1.2.1.jar
commons-io-1.4.jar
在webroot创建一个文件如upload用于保存上传的文件
1.upload.jsp

<body>
<s:form action="upload" enctype="multipart/form-data">
<s:file name="file" label="file"></s:file>
<s:submit label="upload"></s:submit>
</s:form>
</body>


2.UploadAction.java


package com.test.upload;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport {
private File file;
private String fileFileName;
private String fileContentType;
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
@Override
public String execute() throws Exception {
//1.构建一个输入流
InputStream is=new FileInputStream(file);
//2.构建一个上传文件路径
String root=ServletActionContext.getRequest().getRealPath("/upload");
//3.获得一个本地文件
File diskFile=new File(root,this.getFileFileName());
//4.构建输出流
OutputStream os=new FileOutputStream(diskFile);
//5.能过字节写入输出流
byte[] buffer=new byte[400];
int length=0;
while((length=is.read(buffer))>0)
{
os.write(buffer,0,length);
}
is.close();
os.close();
return SUCCESS;
}
}


3.配置struts.xml

<constant name="struts.multipart.saveDir" value="c:\"></constant>
<package name="FileuploadTest" extends="struts-default">
<action name="upload" class="com.test.upload.UploadAction">
<result name="success">/uploadSuccess.jsp</result>
</action>
</package>


二.多文件上传
1.upload.jsp页面

<body>
<s:form action="upload" enctype="multipart/form-data">
<s:file name="file" label="file"></s:file>
<s:file name="file" label="file1"></s:file>
<s:file name="file" label="file2"></s:file>
<s:submit label="submit"></s:submit>
</s:form>
</body>


2.UploadAction.java

package com.test.upload;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport {
private List<File> file;

private List<String> fileFileName;

private List<String> fileContentType;

public List<File> getFile() {
return file;
}

public void setFile(List<File> file) {
this.file = file;
}

public List<String> getFileContentType() {
return fileContentType;
}

public void setFileContentType(List<String> fileContentType) {
this.fileContentType = fileContentType;
}

public List<String> getFileFileName() {
return fileFileName;
}

public void setFileFileName(List<String> fileFileName) {
this.fileFileName = fileFileName;
}

@Override
public String execute() throws Exception {
for (int i = 0; i < file.size(); i++) {
// 1.构建一个输入流
InputStream is = new FileInputStream(file.get(i));
// 2.构建一个上传文件路径
String root = ServletActionContext.getRequest().getRealPath(
"/upload");
// 3.获得一个本地文件
File diskFile = new File(root, this.getFileFileName().get(i));
// 4.构建输出流
OutputStream os = new FileOutputStream(diskFile);
// 5.能过字节写入输出流
byte[] buffer = new byte[400];
int length = 0;
while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
is.close();
os.close();
}
return SUCCESS;
}
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值