字节流完成文件上传
- /20171023_chr_classupload/src/nuc/sw/action/UploadAction.java
package nuc.sw.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.UUID;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport {
private String title;
private File upload;
private String uploadContentType;
private String uploadFileName;
private String savePath;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String getSavePath() {
return savePath;
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public String upload() throws IOException{
System.out.println(upload);
System.out.println(uploadContentType);
System.out.println(uploadFileName);
try {
FileInputStream fis=new FileInputStream(upload);
String newFileName=UUID.randomUUID().toString()+"_"+uploadFileName;
FileOutputStream fos=new FileOutputStream(savePath+"/"+newFileName);
byte[] buffer=new byte[1024];
int len=0;
while((len=fis.read(buffer))>0) {
fos.write(buffer, 0, len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return "uploadOK";
}
}
- /20171023_chr_classupload/src/struts.xml
<struts>
<constant name="struts.multipart.saveDir" value="f:/upload"></constant>
<package name="uploadPackage" namespace="/" extends="struts-default">
<action name="uploadAction" class="nuc.sw.action.UploadAction" method="upload">
<interceptor-ref name="fileUpload">
<param name="allowedExtensions">txt,doc,docx,jpg</param>
<param name="maximumSize">1024000</param>
<param name="allowedTypes">text/plain</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<param name="savePath">f:/uploadRealFile</param>
<result name="uploadOK">
/success.jsp
</result>
<result name="input">
/upload.jsp
</result>
</action>
</package>
</struts>
- /20171023_chr_classupload/WebContent/success.jsp
<%@ 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>成功页</title>
</head>
<body>
上传成功!!!
</body>
</html>
- /20171023_chr_classupload/WebContent/upload.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!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>文件上传页</title>
</head>
<body>
<s:fielderror></s:fielderror>
<s:form action="uploadAction" method="post" enctype="multipart/form-data">
<s:textfield label="文件主题" name="title"></s:textfield>
<s:file label="选择文件" name="upload"></s:file>
<s:submit value="上传"></s:submit>
</s:form>
</body>
</html>