设置文件大小和类型
在struts.xml文件里配置
<interceptor-ref name="defaultStack">
<param name="fileUpload.maximumSize">4194304</param> 4M
<param name="fileUoliad.allowedExtensions">.txt,.doc,.jsp</param>
<param name="fileUpload.allowedTypes">text/plain,application/msword,image/jpeg</param>
</interceptor-ref>
上传
struts.xml
<action name="uploadfile" class="Upload">
<result name="success">/filesuccess.jsp</result>
</action>
jsp
<s:form action="uploadfile" method="post" enctype="multipart/form-data">
<s:file name="file" label="头像"></s:file>
<s:reset value="重置"></s:reset>
<s:submit value="提交·"></s:submit>
</s:form>
Upload类 三个变量必不可少,而且大小写也不能错
set和get方法来读取
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import com.opensymphony.xwork2.ActionSupport;
public class Upload extends ActionSupport{
private static final long seriaVersionUID=1L;
private File file;
private String fileFileName;
private String fileContentType;
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;
}
public String execute() throws Exception{
//文件输入流
InputStream iStream = new BufferedInputStream(new FileInputStream(file));
//设置文件保存目录
String uploadPath = "D:\\Myeclipse\\新建文件夹\\SSH2.0\\WebRoot\\img";
File file1 = new File(uploadPath);
if (!file1.exists()) {
file1.mkdir();
}
OutputStream OStream = new BufferedOutputStream(new FileOutputStream(uploadPath + "\\" + this.getFileFileName()));
System.out.println(this.getFileFileName());
try {
//文件输入流
byte[] buffer = new byte[1024];
int length = 0;
//读取file文件输出到File文件中
while (( length= iStream.read(buffer)) > 0) {
OStream.write(buffer, 0, length);
}
}catch (Exception e) {
// 记录日志
} finally {
if (iStream != null) {
try {
iStream.close();
} catch (IOException e) {
// 记录日志
}
}
if (OStream != null) {
try {
OStream.close();
} catch (IOException e) {
// 记录日志
}
}
}
return SUCCESS;
}
}
最后写一个成功页面就行了