Struts2处理文件上传

一.处理单个文件的上传操作
需要的jar包:
commons-io-1.3.2.jar
commons-fileupload-1.2.1.jar
及Struts的jar包


1.fileUpload.jsp


<body>
<form action="fileUpload.action" method="post" enctype="multipart/form-data">
username: <input type="text" name="username"><br>
file: <input type="file" name="file"><br>
<input type="submit" value="submit">
</form>
</body>


2.FileUploadAction


package com.eric.struts2;

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;

/**
*
* @author eric 上传单个文件
*/
public class UploadAction extends ActionSupport {
private String username;
// 获取上传的文件名称:file为前台jsp中 input type=file 的name值
private File file;
// 获取上传的文件名称:固定格式 file + FileName
private String fileFileName;
// 获取上传的文件类型mime类型:固定格式 file + ContentType
private String fileContentType;
//file.getName()方法得到的是上传的临时文件的名字
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
/**
* 处理文件上传的方法
*/
@Override
public String execute() throws Exception {
//取得存放上传文件的目录路径
String root = ServletActionContext.getRequest().getRealPath("/upload");
//文件上传,IO操作,写到磁盘目录中去
InputStream is = new FileInputStream(file);
System.out.println("path: " + file.getAbsolutePath());
System.out.println("file: " + file.getName());
System.out.println("fileFileName: " + fileFileName);
File destFile = new File(root, fileFileName);
OutputStream os = new FileOutputStream(destFile);
byte[] buffer = new byte[400];
int length = 0;
while (-1 != (length = is.read(buffer))) {
os.write(buffer, 0, length);
//Thread.sleep(1000);
}
is.close();
os.close();
return SUCCESS;
}
}



3.struts.xml


<action name="fileUpload" class="com.eric.struts2.UploadAction">
<result name="success">/fileUploadResult.jsp</result>
</action>


4.fileUploadResult.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<body>
username: <s:property value="username"/><br>
name:<s:property value="fileFileName"/><br>
type:<s:property value="fileContentType"/>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值