zoukankan      html  css  js  c++  java
  • ssm文件上传_上传图片

    1、搭建好ssm框架 

    2、导入文件上传所需依赖

    <!--文件上传-->
        <dependency>
          <groupId>commons-fileupload</groupId>
          <artifactId>commons-fileupload</artifactId>
          <version>1.4</version>
        </dependency>
        <dependency>
          <groupId>commons-io</groupId>
          <artifactId>commons-io</artifactId>
          <version>2.6</version>
        </dependency>
        <dependency>
          <groupId>commons-lang</groupId>
          <artifactId>commons-lang</artifactId>
          <version>2.6</version>
        </dependency>
     <!--文件上传依赖结束-->
    

    3、springmvc的xml文件中配置文件所需的类

     

    <!--文件上传配置-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"/> <property name="maxUploadSize" value="5000000"/> </bean>

    4、jsp界面

    对应

     

    其次第二个文件上传对应的就是第二个div里面的内容

    4、form表单配置

    <form action="/jsp/user/addUser" method="post" enctype="multipart/form-data"></form>
    注意:
      
      表单中method必须为post方法不然会报405错误
      必须加入enctype属性这样此表单才支持文件上传



    5、controller层(逻辑和代码如下有注释):


     @RequestMapping("addUser")
        public String addUser(
                    User user,
                    HttpSession session,
                    Model model,
                    @RequestParam(value="multipartFiles") MultipartFile[] multipartFiles){
            //如果有文件上传
            if(multipartFiles.length>0){
                for(int i=0;i<multipartFiles.length;i++){
                    if(!multipartFiles[i].isEmpty()){
                        //File.separator 可以兼容不同系统下的路径分割
                        String path=session.getServletContext().getRealPath("statics"+ File.separator+"uploadfiles");
                        //原文件名
                        String oldName=multipartFiles[i].getOriginalFilename();
                        //获取原文件的后缀(可以过滤一些文件)
                        String suffix= FilenameUtils.getExtension(oldName);
                        //文件上上传大小 得小于 500 kb
                        int fileSize=1024*500;
                        //如果当前文件的大小大于500kb
                        if((multipartFiles[i].getSize())>fileSize){
                            model.addAttribute("error","文件的大小大于500kb");
                            return "redirect:jsp/user/forwardTo?url=userAdd";
                        }
                        //后缀判断
                        if("jpg".equals(suffix)||"jpeg".equals(suffix)||"png".equals(suffix)||"pneg".equals(suffix)){
                            //新拼接的文件名 原文件名+当前系统时间+随机数+"_Personal.jpg"
                            String fileName=oldName+System.currentTimeMillis()+ RandomUtils.nextInt(1000000)+"_Personal.jpg";
                            File targetFile=new File(path,fileName);
                            //如果该目录不存在
                            if(!targetFile.exists()){
                                //递归创建该目录
                                targetFile.mkdirs();
                            }
                            try {
                                //文件上传
                                multipartFiles[i].transferTo(targetFile);
                                if(i==0){
                                    user.setIdPicPath(fileName);
                                }else if(i==1){
                                    user.setWorkPicPath(fileName);
                                }
    
                            } catch (IOException e) {
                                e.printStackTrace();
                                model.addAttribute("error","文件上传失败");
                                return "redirect:jsp/user/forwardTo?url=userAdd";
                            }
                        }else{
                            model.addAttribute("error","图片格式不违法");
                            return "redirect:jsp/user/forwardTo?url=userAdd";
                        }
                    }
                }
            }
    
    
            //未携带文件上传:
            //获取当前用户
            User userSession = (User) session.getAttribute(Contents.USER_SESSION);
            //设置创建者 和 创建时间的值
            user.setCreatedBy(userSession.getId());
            user.setCreationDate(new Date());
            //添加用户成功跳用户列表否则还是在用户添加页面
            return userService.insertUser(user)?"redirect:/jsp/user/forwardTo?url=home":"redirect:/jsp/user/forwardTo?url=userAdd";
        }
     

      

    
    
  • 相关阅读:
    vs2005 配置winpcap
    qt 解决中文乱码问题
    [翻译] QT正则表达式
    使用QSetting 读写ini文件
    [转]GNOME快捷键
    华为面试题之大整数相加
    qt 程序windows 上发布
    win7英文版中文乱码问题
    CURL命令 Alex
    Sendfile机制 Alex
  • 原文地址:https://www.cnblogs.com/javaBoy-ahua/p/14162825.html
Copyright © 2011-2022 走看看