Struts2文件上传详解
Struts2文件上传详解???<s:textfield name="username" label="用户名"></s:textfield>
???<s:password name="password" label="密码"></s:password>
???<s:file name="myfile" label="文件"></s:file>
???<s:submit></s:submit>
??</s:form>
?四:strus.xml配置说明:
??<struts>
???<!-- 设置request的编码方式 -->
???<constant name="struts.i18n.encoding" value="gbk"></constant>
???<!-- 上传大文件临时目录 -->
???<constant name="struts.multipart.saveDir" value="c:\"></constant>
???<!--
????上传的文件大于多少时将放到临时目录中,否则放到内存中
????Struts2默认的大为2097152即2M
????<constant name="struts.multipart.maxSize" value=""></constant>
??? -->
???<package name="mengya" extends="struts-default">
????
????<action name="upload" class="com.mengya.action.UploadAction">
?????<result name="success">/result.jsp</result>
????</action>
????
???</package>
??</struts>
?五:上传的Action说明:
??/**
?? * Struts2上传
?? * @author 张明学
?? *
?? */
??public class UploadAction extends ActionSupport {
???private String username;
??
???private String password;
???/**
??? * 对应页面中的File标签的名称
??? */
???private File myfile;
??
???/**
??? * 这个属性由Struts2自动生成。规则:File字段的属性名+FileName和File字段的属性名+ContentType
??? * File字段的属性名+FileName表示上传的文件名
??? */
???private String myfileFileName;
??
???/**
??? * File字段的属性名+ContentType表示上传的文件的类型
??? */
???private String myfileContentType;
??
???@Override
???public String execute() throws Exception {
????
????InputStream is=new FileInputStream(myfile);
????/**
???? * 上传到服务器的目录
???? */
????String root=ServletActionContext.getRequest().getRealPath("/upload");
????
????File destFile=new File(root,this.getMyfileFileName());
????
????OutputStream os=new FileOutputStream(destFile);
????
????byte[] buffer=new byte[400];
????
????int length=0;
????
????while((length=is.read(buffer))>0){
?????os.write(buffer,0,length);
????}
????os.close();
????is.close();
????
????return SUCCESS;
???}
??
???public File getMyfile() {
????return myfile;
???}
??
???public void setMyfile(File myfile) {
????this.myfile = myfile;
???}
??
???public String getPassword() {
????return password;
???}
??
???public void setPassword(String password) {
????this.password = password;
???}
??
???public String getUsername() {
????return username;
???}
??
???public void setUsername(String username) {
????this.username = username;
???}
??
???public String getMyfileContentType() {
????return myfileContentType;
???}
??
???public void setMyfileContentType(String myfileContentType) {
????this.myfileContentType = myfileContentType;
???}
??
???public String getMyfileFileName() {
????return myfileFileName;
???}
??
???public void setMyfileFileName(String myfileFileName) {
????this.myfileFileName = myfileFileName;
???}
??
??}