基于Struts文件上传(FormFile)详解
Struts中FormFile用于文件进行上传
1.在jsp文件中进行定义
名字: 头像:
2.在Form表单中定义FormFile
/*
*GeneratedbyMyEclipseStruts
*Templatepath:templates/java/JavaClass.vtl
*/
packagecom.yourcompany.struts.form;
importjavax.servlet.http.HttpServletRequest;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionMapping;
importorg.apache.struts.upload.FormFile;
/**
*MyEclipseStruts
*Creationdate:08-24-2017
*
*XDocletdefinition:
*@struts.formname="userForm"
*/
publicclassUserFormextendsActionForm{
/*
*GeneratedMethods
*/
privateStringusername;
privateFormFilefile;
publicStringgetUsername(){
returnusername;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicFormFilegetFile(){
returnfile;
}
publicvoidsetFile(FormFilefile){
this.file=file;
}
}
3.利用struts文件进行关联Form,关联以后
1)利用表单实例进行获取FormFile实例,在获取以后,我们可以通过FormFile获取上传文件的各种信息
UserFormuserForm=(UserForm)form; Stringusername=userForm.getUsername(); FormFilefile=userForm.getFile(); //通过formFile可以获取关于用户上传文件的各种信息 //用于获取文件名字 StringfileName=file.getFileName(); //用于获取文件大小 intfileSize=file.getFileSize();
2)通过FormFile实例获取输入流,创建一个输出流,并且在代码中获取tomcat服务器的绝对路径
try{
//获取输入流
is=file.getInputStream();
//得到输出流
//1.得到file文件夹,上传到tomcat服务器后的绝对路径(file文件为新创建的文件夹)
StringfilePath=this.getServlet().getServletContext().getRealPath("/file");
//两个"//"的其中一个"/"为转义符
os=newFileOutputStream(filePath+"\\"+fileName);
intlen=0;//表示读取的字节
//做一个缓存,防止文件过大而造成错误
byte[]buff=newbyte[1024];
while((len=is.read(buff))!=-1)
{
os.write(buff,0,len);
}
is.close();
os.close();
}
以上这篇基于Struts文件上传(FormFile)详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。