zoukankan      html  css  js  c++  java
  • struts2 ajax文件上传类型拦截后的消息提示

    1.html 文件上传表单

    <form action="" enctype="multipart/form-data" method="post"
                                class="stdform stdform2" id="upload-form">
        <input type="file" name="upload" id="uplodfile" />
        <button id="file-submit" class="submit radius2" style=" 100px; font-size: 15px">提 交</button>

    2. js 异步提交

    function __submit(){
            $('#upload-form').submit(function(e){
            //前端验证
            /*
    var file = $("#uplodfile").val(); var pos=file.lastIndexOf("\"); var filename=file.substring(pos+1); var type=(filename.substr(filename.lastIndexOf("."))).toLowerCase(); var allowedTypes=['.pdf','.jpg','.png']; if(allowedTypes.indexOf(type)==-1){ layer.alert('不允许的文件类型!',{icon: 5 ,offset:['40%', '40%']}); return false; }
            */ $(
    this).ajaxSubmit({ url: 'rcm_upload.action', dataType: 'json', type:'post', success: function(data){ alert(data.msg)
    } });
    return false; }); }

    3.strtus2文件上传拦截配置 struts.xml

    <action name="file_*" class="com.demo.action.FileManager.Action" method="{1}">
                 <result name="success" type="json">
                    <param name="root">data</param>
                    <param name="contentType">text/plain</param>
                    <param name="excludeNullProperties">true</param>
                </result>
                <param name="savePath">/download</param>
                  <interceptor-ref name="fileUpload">  
               <!--配置允许上传的文件类型-->  
                <param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg</param>  
              </interceptor-ref>  
              <interceptor-ref name="defaultStack"/>
             <!--配置文件拦截后的input action跳转-->  
              <result name="input" type="chain">file_input</result>  
            </action>

    4.action

    @SuppressWarnings("static-access")
    public class UploadAction extends ActionSupport {
    
        private File uploadImage; //得到上传的文件
        private String uploadImageContentType; //得到文件的类型
        private String uploadImageFileName; //得到文件的名称
        
        public String execute(){
            System.out.println("fileName:"+this.getUploadImageFileName());
            System.out.println("contentType:"+this.getUploadImageContentType());
            System.out.println("File:"+this.getUploadImage());
            
            //获取要保存文件夹的物理路径(绝对路径)
            String realPath=ServletActionContext.getServletContext().getRealPath("/upload");
            File file = new File(realPath);
            
            //测试此抽象路径名表示的文件或目录是否存在。若不存在,创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
            if(!file.exists())file.mkdirs();
            
            try {
                //保存文件
                FileUtils.copyFile(uploadImage, new File(file,uploadImageFileName));
           setMessage(MessageType.Ok, "文件上传成功!"); //返回消息处理。。 } catch (IOException e) { e.printStackTrace(); } return SUCCESS; }
      public String input()
      {
       setMessage(MessageType.Erro, "不允许的文件类型!"); //返回消息处理

    return SUCCESS;
      }
    public File getUploadImage() { return uploadImage; } public void setUploadImage(File uploadImage) { this.uploadImage = uploadImage; } public String getUploadImageContentType() { return uploadImageContentType; } public void setUploadImageContentType(String uploadImageContentType) { this.uploadImageContentType = uploadImageContentType; } public String getUploadImageFileName() { return uploadImageFileName; } public void setUploadImageFileName(String uploadImageFileName) { this.uploadImageFileName = uploadImageFileName; } }
    
    

    注意 :struts 文件拦截成功后自动直接返回 “input” ,我们要对返回的result name=“input” 进行配置

    我们这里只进行拦截成功的提示:配置内部action跳转即可

     <!--配置文件拦截后的input action跳转-->  
              <result name="input" type="chain">rcm_input</result>  
  • 相关阅读:
    第三百九十一、二、三、四、五、六、七天 how can I 坚持
    第三百九十天 how can I 坚持
    第三百八十九天 how can I 坚持
    POJ 1745:Divisibility 枚举某一状态的DP
    POJ 1502:MPI Maelstrom Dijkstra模板题
    POJ 1160:Post Office 邮局经典DP
    POJ 1062:昂贵的聘礼
    POJ 1125:Stockbroker Grapevine
    POJ 1236:Network of Schools
    POJ 2186:Popular Cows Tarjan模板题
  • 原文地址:https://www.cnblogs.com/L-zh/p/8580122.html
Copyright © 2011-2022 走看看