天天看点

struts文件的上传

1.工程如图:

struts文件的上传

2.UserAction.java

package com.ask.action;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport{

private File myFile;

private String myFileContentType;

private String myFileFileName;

public String getMyFileContentType() {

return myFileContentType;

}

public void setMyFileContentType(String myFileContentType) {

this.myFileContentType = myFileContentType;

}

public String getMyFileFileName() {

return myFileFileName;

}

public void setMyFileFileName(String myFileFileName) {

this.myFileFileName = myFileFileName;

}

public File getMyFile() {

return myFile;

}

public void setMyFile(File myFile) {

this.myFile = myFile;

}

public String test() throws IOException{

System.out.println(myFile);

System.out.println(myFileFileName);

System.out.println(myFileContentType);

String path = ServletActionContext.getServletContext()

.getRealPath("/upload");

System.out.println("path:"+path);

try {

InputStream file1=new FileInputStream(myFile);

path=path+File.separator+myFileFileName;

System.out.println(path);

OutputStream os=new FileOutputStream(path);

byte[] buf=new byte[1024*1024];

int len=0;

while((len=file1.read(buf))!=-1){

os.write(buf,0,len);

}

file1.close();

os.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

}

return "test";

}

}

3.UserAction1.java

package com.ask.action;

//第一种方法;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import javax.servlet.ServletContext;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction1 extends ActionSupport{

// myFile属性用来封装上传的文件

private File myFile;

// myFileContentType属性用来封装上传文件的类型

private String myFileContentType;

// myFileFileName属性用来封装上传文件的文件名

private String myFileFileName;

//获得myFile值

public File getMyFile() {

return myFile;

}

//设置myFile值

public void setMyFile(File myFile) {

this.myFile = myFile;

}

//获得myFileContentType值

public String getMyFileContentType() {

return myFileContentType;

}

//设置myFileContentType值

public void setMyFileContentType(String myFileContentType) {

this.myFileContentType = myFileContentType;

}

//获得myFileFileName值

public String getMyFileFileName() {

return myFileFileName;

}

//设置myFileFileName值

public void setMyFileFileName(String myFileFileName) {

this.myFileFileName = myFileFileName;

}

public String test() throws Exception {

//基于myFile创建一个文件输入流

InputStream is = new FileInputStream(myFile);

// 设置上传文件目录

String uploadPath = ServletActionContext.getServletContext()

.getRealPath("/upload");

// 设置目标文件

File toFile = new File(uploadPath, this.getMyFileFileName());

// 创建一个输出流

OutputStream os = new FileOutputStream(toFile);

//设置缓存

byte[] buffer = new byte[1024];

int length = 0;

//读取myFile文件输出到toFile文件中

while ((length = is.read(buffer)) > 0) {

os.write(buffer, 0, length);

}

System.out.println("上传文件名"+myFileFileName);

System.out.println("上传文件类型"+myFileContentType);

//关闭输入流

is.close();

//关闭输出流

os.close();

return "test";

}

}

4.struts.xml