• 文件上传—SSM框架文件上传


    1、准备上传下载的api组件

    <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
    </dependency> 
    <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
    </dependency>
    2、编写前台上传表单

    <form action="index/newadd" method="post" enctype="multipart/form-data">
    <table class="form">
          <tr>
               <td class="field">证件照:</td>
               <td><input type="file" id="wkpicpath" class="text" name="attachs" />  </td>
               <td class="field"id="hderrorinfo" style="margin-left:0px">${sessionScope.uploadwkError}</td>
         </tr>
         <tr>
              <td class="field">头像:</td>
              <td><input type="file" id="hdpicpath"  class="text" name="attachs" /></td>
              <td class="field"id="hderrorinfo" style="margin-left:0px">${sessionScope.uploadhdError}</td>
         </tr>
         <tr>
              <td></td>
              <td><label class="ui-blue"><input type="submit" name="submit" value="添加" /></label></td>
         </tr>
    </table>
    </form>
    3、编写controller层(多文件上传)

     /*
         * 管理员新增用户
         */
        @RequestMapping(value="/newadd",method=RequestMethod.POST)
        public String doAddUser(HttpSession session,HttpServletRequest request,
                                @RequestParam(value="attachs",required=false)MultipartFile[] attachs,
                                User user){
            
            //定义两个上传文件的路径
            String wkpicpath = null;
            String hdpicpath = null;
            String errorinfo = null;
            //定义上传过程管理标记
            boolean flag = true;
            //定义文件保存的位置
            String path = request.getSession().getServletContext().getRealPath("statics"+File.separator+"uploadfiles");
            //循环读取文件信息
            for(int i=0;i<attachs.length;i++){
                MultipartFile attach = attachs[i];
                //判断文件是否为空
                if(!attach.isEmpty()){
                    //判断是第几个文件
                    if(i==0){
                        errorinfo = "uploadwkError";
                    }else if(i==1){
                        errorinfo = "uploadhdError";
                    }
                //获取源文件名
                String oldName= attach.getOriginalFilename();
                //获取源文件名后缀
                String prefixName = FilenameUtils.getExtension(oldName);
                
                int fileSize = 500000;
                //判断上传大小不得超过500K
                if(attach.getSize()>fileSize){
                    session.setAttribute(errorinfo, "上传文件不得大于500k");
                    flag = false;
                }else if(prefixName.equalsIgnoreCase("jpg")
                        || prefixName.equalsIgnoreCase("png")
                        || prefixName.equalsIgnoreCase("jpeg")
                        || prefixName.equalsIgnoreCase("pneg")){
                    //判断上传格式
                    //定义新的文件名,当前系统时间+随机数+固定后缀,
                    //RandomUtils需要引入jar文件commons-lang.jar
    //String fileName = System.currentTimeMillis()+RandomUtils.nextInt(1000000)+"personer.jpg";
                    String fileName = System.currentTimeMillis()+"personer.jpg";
                    //创建新的文件,用于接收用户上传的文件流
                    File targetFile = new File(path, fileName);
                    if(!targetFile.exists()){
                        targetFile.mkdirs();
                    }
                    
                    //将上传的文件保存
                    try {
                        attach.transferTo(targetFile);
                    } catch (Exception e) {
                        e.printStackTrace();
                        session.setAttribute(errorinfo,"上传失败!");
                        flag = false;
                    } 
                    
                    //更新上传的路径
                    if(i==0){
                        wkpicpath = path + File.separator + fileName;
                    }else if(i==1){
                        hdpicpath = path + File.separator + fileName;
                    }                
                }else{
                    session.setAttribute(errorinfo,"图片格式不正确!");
                    flag = false;
                }                
               }        
            }        
            
            //准备User
            if(flag){
                user.setWkpicpath(wkpicpath);
                user.setHdpicpath(hdpicpath);
                user.setUserrole(1);
                            //插入数据库
                if(userService.findAddUser(user)>0){                
                    return "redirect:/index/user";
                }            
            }        
            return "manager/user-add.jsp";
        }
  • 相关阅读:
    Spring中Bean及@Bean的理解
    Visual Studio(VS)秘钥集合
    PLC不能初始化问题
    【原创】C# API 未能创建 SSL/TLS 安全通道 问题解决
    【原创】XAF CriteriaOperator 使用方式汇总
    【原创】.Net WebForm Calendar 日历控件常用方法
    【原创】XAF常用属性字段设置
    【记录】Windows 操作系统常用快捷命令
    【XAF】常见错误以及对应解决方法
    【原创】XAF ITreeNode+NonPersistent 使用方式
  • 原文地址:https://www.cnblogs.com/domi22/p/8059767.html
Copyright © 2020-2023  润新知