zoukankan      html  css  js  c++  java
  • struts上传

    Struts2文件上传:
     一:请选参看Struts2_9中的Struts2上传原理
     二:加入Struts2的支持
     三:页面
      <s:form action="upload" method="post" enctype="multipart/form-data">
       <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;
       }
      
      }

     转自http://aben328.iteye.com/blog/669990

  • 相关阅读:
    Logstash实践
    GitLab-CI部署及踩坑总结
    WebSocket ,Socket ,Http差异
    加快Gradle的构建过程
    关于Android 主题的那些事
    inflate()引发NullPointerException
    Android Error:Could not find lottie.jar
    GreenDao使用解析
    关于ActionBar 左侧添加完返回后 点击无效的问题
    Android 如何更改一个 imageview的颜色
  • 原文地址:https://www.cnblogs.com/javaxiu/p/3596180.html
Copyright © 2011-2022 走看看