一.单文件上传
添加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;
}
}
3.struts.xml
同上
posted on 2008-05-08 11:23
长春语林科技 阅读(818)
评论(0) 编辑 收藏 所属分类:
struts2