您的位置:首页 > 编程语言 > Java开发

基于Struts2文件上传

2015-12-10 13:41 190 查看
Java代码

package com.company.project.action;

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 static final long serialVersionUID = 1L;

// 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 execute() 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);
}

//关闭输入流
is.close();

//关闭输出流
os.close();

return SUCCESS;
}
}


jsp代码

<body>
<form action="upload.action" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>上传文件:</td>
<td><input type="file" name="myFile"></td>
</tr>
<tr>
<td><input type="submit" value="上传"></td>
<td><input type="reset"></td>
</tr>
</table>
</form>
</body>


Strut.xml代码

<struts>
<constant name="struts.devMode" value="false" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="upload" class="com.company.project.action.UploadAction">
<result name="success">/index.jsp</result>
<result name="input">/upload.jsp</result>
</action>
</package>
</struts>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: