• java上传---表单+多文件上传


    @RequestMapping(value = "/addActivity")

    public CIPResponseMsg addActivity(HttpServletRequest request,HttpServletResponse response) throws Exception {
      System.out.println("接口进来了");
      CIPResponseMsg msg = new CIPResponseMsg();
      CIPRuntimeOperator operator = CIPRuntime.getOperateSubject();
      request.setCharacterEncoding("UTF-8");
      response.setContentType("text/html");
         request.getParameterMap();
      String name = request.getParameter("activity_name");
      MEETING_register_activeityData activeityData = new MEETING_register_activeityData();
      MEETING_register_activeityVO activeityVO = new MEETING_register_activeityVO();
      // 文件存放路径
      String path = CIPRuntimeConfigure.cip_temp_file_path + File.separator;
      String tempPath;
      File dir = new File(path);
      if (!dir.exists()) {
      dir.mkdirs();
      }
      String fileName ="";
       try {
         Iterator<FileItem> iter = FileUploadUtil.getFileItemIterator(request, path);
         while (iter.hasNext()) {
           // item---前端传过来的(实体+表单)的所有数据
           FileItem item = iter.next();
           String fieldName = item.getFieldName();
           Long fileSize = item.getSize();
            fileName = item.getName();
            // 判断属性是不是普通的表单类型
            //将前端数据一一对应塞进对象里面
             if (!item.isFormField() && !"".equals(fileName)) {
             //截取前端传进来的文件后缀名
          String suffix = fileName.substring(fileName.lastIndexOf("."));
          // 判断该附件格式是否符合条件
          System.out.println("图片类型"+fileName);
          if (".png".equalsIgnoreCase(suffix)) {
          if("background_picture".equals(fieldName)){
          String serverpath = path + "\"+ fileName;
          File file = new File(serverpath);
          activeityVO.setBackground_picture(serverpath);
        }
        if("seat_picture".equals(fieldName)){
            String serverpath = path + "\"+ fileName;
            File file = new File(serverpath);
            activeityVO.setSeat_picture(serverpath);
        }
        if("metting_agenda".equals(fieldName)){
           String serverpath = path + "\"+ fileName;
           File file = new File(serverpath);
           activeityVO.setMetting_agenda(serverpath);
        }
        if("metting_discipline".equals(fieldName)){
            String serverpath = path + "\"+ fileName;
            File file = new File(serverpath);
            activeityVO.setMetting_discipline(serverpath);
        }
      } else {
        msg.errorCode = 100005;
        msg.msg = "附件格式输入有错,请重新输入!(支持doc、docx、jpg、xls、png、zip、rar、pdf、txt)";
        return msg;
      }
        if (fileSize > 10485760) {
          msg.errorCode = 100006;
          msg.msg = fieldName + "上传图片不得大于10M!";
          responseMsg(response, msg);
          return msg;
        }
      } else {
          // 表单内除附件外其他表的字段获取(通过映射set获取页面实体值id--name)
          ReflectUtil.invokeSetMethod4Field(activeityData, fieldName,new String(item.get(), "UTF-8"));
      }

    //给图片重新命名+日期(用流重新写进来)--不写进来的结果就是在默认路径下,文件名称发生变化,(码集影响)
        //fileName=TimeUtil.format(new Date(), "yyyyMMddHHmmss")+"_"+fileName;
        fileName=fileName;
        tempPath=path.substring(0, path.length()-1)+"/"+fileName;
        File file = new File(tempPath);
        file.createNewFile();
        file.setExecutable(true);//设置可执行权限
        file.setReadable(true);//设置可读权限
        file.setWritable(true);//设置可写权限
        item.write(file);
        }
          Integer activity_id = WCM_utils_SequenceUtils.nextItemNo();
          activeityVO.setActivity_name(activeityData.getActivity_name());
          activeityVO.setActivity_validate_mode(activeityData.getActivity_validate_mode());
          activeityVO.setActivity_start_time(activeityData.getActivity_start_time());
          activeityVO.setActivity_end_time(activeityData.getActivity_end_time());
          activeityVO.setActivity_content(activeityData.getActivity_content());
          String activity_name = activeityVO.getActivity_name();
          //活动名称不一致
          List<MEETING_register_activeityData> ls = activeityService.findName(activity_name);
          if(ls.size()>0){
            //该任务名称数据库有,请重新命名
            msg.errorCode = 1;
            msg.msg = "活动名称已存在!请重新重命名";
          }else{
                //将数据写进对象里面
            String metting_discipline = activeityVO.getMetting_discipline();
            String activity_content = activeityVO.getActivity_content();
            //自动生成二维码接口two_dimension_code
            String text = "http://10.20.24.43:8080/meeting/meeting_register_phoneIndex.html"; //二维码生产内容--跳转url
            int width = 350; // 二维码图片的宽
            int height = 350; // 二维码图片的高
            String outPutPath = path+ "\"+activity_name+"二维码"+".png"; //二维码生成保存路径
            String imageType = "png"; //二维码生成类型
            QRCodeTool.zxingCodeCreate(text, width, height, outPutPath, imageType);
            if(outPutPath.equals("")||outPutPath==null){
                msg.errorCode = 1;
                msg.msg = "二维码生成失败";
            }else{
            activeityVO.setTwo_dimension_code(outPutPath);
            String two_dimension_code = activeityVO.getTwo_dimension_code();
            String activity_status="";
        activeityService.addActivity(activity_id,activity_name,activity_content,activity_start_time,activity_end_time,activity_validate_mode,background_picture,seat_picture,metting_agenda,metting_discipline,two_dimension_code,activity_status);
    msg.errorCode = 0;
    msg.msg = CIPErrorCode.CALL_SUCCESS.name;
    }
    }
    } catch (CIPServiceException e) {
    CIPErrorCode error = e.getErrorCode();
    msg.errorCode = error.code;
    msg.msg = error.name;
    } catch (CIPDaoException e) {
    CIPErrorCode error = e.getErrorCode();
    msg.errorCode = error.code;
    msg.msg = error.name;
    } catch (CIPRuntimeException e) {
    CIPErrorCode error = e.getErrorCode();
    msg.errorCode = error.code;
    msg.msg = error.name;
    }
    return msg;
    }

  • 相关阅读:
    zabbix 对/etc/ssh/sshd_config文件的监控 但status为unknowen
    Kotlin从零到精通Android开发
    谷歌官方 构建您的第一个应用 Kotlin版
    android studio 运行按钮为灰色的解决办法之一
    webapi发布到windows 2012的iis8里 出错
    Asp.net MVC WebApi项目的自动接口文档及测试功能打开方法
    Asp.net Web Api开发(第四篇)Help Page配置和扩展
    关于SNMP的MIB文件的语法简述
    Visual Stdio 2017增加SVN支持
    ffmpeg 多个音频合并 截取 拆分
  • 原文地址:https://www.cnblogs.com/Darkqueen/p/10310376.html
Copyright © 2020-2023  润新知