用到的类import org.apache.struts.upload.FormFile;
Jsp上传页面:
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
strutsUploadForm
</title>
</head>
<body bgcolor="#ffffff">
<h1>
上传测试
</h1>
<form action="uploadTestAction.do" method="post" enctype="multipart/form-data" name="form1">
<p>文本
<input name="theText" type="text" id="theText">
</p>
<p>文件
<input name="theFile" type="file" id="theFile">
</p>
<p>保存到
<input name="saveTo" type="text" id="saveTo">
</p>
<p>
<input type="submit" name="Submit" value="提交">
</p>
</form>
</body>
</html>
actionForm
package hehe;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import org.apache.struts.upload.FormFile;
public class UploadTestForm extends ActionForm {
private String saveTo;
private String theText;
private org.apache.struts.upload.FormFile theFile;//文件框对应的是formFile类型
public String getSaveTo() {
return saveTo;
}
public void setSaveTo(String saveTo) {
this.saveTo = saveTo;
}
public org.apache.struts.upload.FormFile getTheFile() {
return theFile;
}
public void setTheFile(org.apache.struts.upload.FormFile theFile) {
this.theFile = theFile;
}
public String getTheText() {
return theText;
}
public void setTheText(String theText) {
this.theText = theText;
}
public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
/**@todo: finish this method, this is just the skeleton.*/
if(!this.getTheFile().getContentType().equals("image/pjpeg")){
System.out.println("不是jpg");
}//可以判断类型
if(this.getTheFile().getFileSize()>100){
System.out.println("长度大于1000");
}//可以判断大小
return null;
}
public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
saveTo = null;
theFile = null;
theText = null;
}
}
Action
package hehe;
import org.apache.struts.action.*;
import org.apache.struts.upload.FormFile;
import javax.servlet.http.*;
import java.io.*;
public class UploadTestAction
extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest request,
HttpServletResponse response) {
UploadTestForm uploadForm = (UploadTestForm) actionForm;
FormFile file = uploadForm.getTheFile();
String path = uploadForm.getSaveTo();
String theText = uploadForm.getTheText();
try {
InputStream input = file.getInputStream();//能从FormFile中获得输入流
OutputStream output = new FileOutputStream(path);
int bytesReader = 0;
byte[] readbuffer = new byte[8192];
while ( (bytesReader = input.read(readbuffer, 0, 8192)) != -1) {
output.write(readbuffer, 0, bytesReader);
}
output.close();
}
catch (Exception e) {
e.printStackTrace();
}
request.setAttribute("theText", theText);
request.setAttribute("fileName", file.getFileName());//上传的文件名
request.setAttribute("fileSize", new Integer(file.getFileSize()));//文件大小
request.setAttribute("fileType", file.getContentType());//文件类型
return actionMapping.findForward("success");
}
}
结果页面
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
strutsUploadResult
</title>
</head>
<body bgcolor="#ffffff">
<h1>
上传结果
</h1>
文件名:<%=request.getAttribute("fileName")%><br />
文本:<%=request.getAttribute("theText")%><br />
文件类型:<%=request.getAttribute("fileType")%><br />
文件大小:<%=request.getAttribute("fileSize")%><br />
</body>
</html>