文件上传 |
文件上传准备:
注意:
1):表单必须使用POST方式提交(GET方式数据大小不能超过1KB);
2):使用二进制编码.multipart/form-data(把文件的数据发送给服务端而不是文件的名).
3):<input type="file"name=""/>
upload.xml:
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%--pageEncoding="UTF-8"--%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>upload</title>
</head>
<body>
<fieldset>
<legend>上传文件</legend>
<form action="${pageContext.request.contextPath}/up/upload" enctype="multipart/form-data" method="post">
<input type="file" name="UpImg">
<input type="submit" value="上传">
</form>
</fieldset>
</body>
</html>
UploadAction.java:
package clu.mochunrong.upload_action;
import java.io.File;
import javax.servlet.ServletContext;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private File UpImg;
private String UpImgContentType;
private String UpImgFileName;
@Override
public String execute() throws Exception {
System.out.println("------execute----");
System.out.println("------UpImg----"+UpImg);
System.out.println("------UpImgContentType----"+UpImgContentType);
System.out.println("------UpImgFileName----"+UpImgFileName);
//获取项目绝对路径+upload相对路径
String contextPath = ServletActionContext.getServletContext().getRealPath("/upload");
System.out.println("项目的文件路径"+contextPath);
File destFile = new File(contextPath, UpImgFileName);
FileUtils.copyFile(UpImg, destFile);
return NONE;
}
public void setUpImg(File upImg) {
UpImg = upImg;
}
public void setUpImgContentType(String upImgContentType) {
UpImgContentType = upImgContentType;
}
public void setUpImgFileName(String upImgFileName) {
UpImgFileName = upImgFileName;
}
}
图解:
文件下载 |