示例#1
0
 public void upload() throws Exception {
   MultipartRequest multipartRequest = (MultipartRequest) this.request;
   String currRelativeFolder = this.getFolder(this.relativeFolder);
   FileUtils.forceMkdir(new File(this.savePath + currRelativeFolder));
   MultipartFile multipartFile = multipartRequest.getFile("upfile");
   if (multipartFile == null) {
     this.state = ERROR_INFO.get("NOFILE");
     return;
   }
   if (multipartFile.getSize() > this.maxSize) {
     this.state = ERROR_INFO.get("SIZE");
     return;
   }
   this.originalName = multipartFile.getOriginalFilename();
   if (!this.checkFileType(this.originalName)) {
     this.state = ERROR_INFO.get("TYPE");
     return;
   }
   this.fileName = this.getName(this.originalName);
   this.type = this.getFileExt(this.originalName);
   this.url = currRelativeFolder + "/" + fileName;
   FileUtils.copyInputStreamToFile(
       multipartFile.getInputStream(),
       new File(savePath + currRelativeFolder + "/" + this.fileName));
   this.state = ERROR_INFO.get("SUCCESS");
   // UE中只会处理单张上传,完成后即退出
 }
示例#2
0
  @Override
  public ModelMap handleMultipart(
      Do tempDo, ModelMap modelMap, HttpServletRequest request, MultipartRequest multipartRequest)
      throws Exception {
    String introductionId = request.getParameter("master.id");
    MultipartFile multipartFile = multipartRequest.getFile("picurl");

    XSaveOrUpdate xSaveOrUpdate = new XSaveOrUpdate(tempDo.getName(), request);
    HashMap<String, Object> paramMap = xSaveOrUpdate.getParamMap();
    if (multipartFile.getOriginalFilename() != null
        && !multipartFile.getOriginalFilename().equals("")) {
      String url = "work/" + introductionId + "/" + multipartFile.getOriginalFilename();
      aliOssUploadManager.uploadFile(multipartFile, "tenant", url);
      paramMap.put("pictureUrl", url);
    }
    paramMap.put("master.id", introductionId);
    Object object = baseManager.saveOrUpdate(xSaveOrUpdate);

    // 介绍
    String introductionContent = request.getParameter("productDescription");
    ProductDescription productDescription = new ProductDescription();
    productDescription.setContent(introductionContent);
    Product product = new Product();
    product.setId(((MasterWork) object).getId());
    productDescription.setProduct(product);

    baseManager.saveOrUpdate(ProductDescription.class.getName(), productDescription);

    ((MasterWork) object).setProductDescription(productDescription);

    baseManager.saveOrUpdate(MasterWork.class.getName(), object);

    List<String> tagValueList = new ArrayList<>();

    Enumeration<String> paramEnumeration = request.getParameterNames();

    while (paramEnumeration.hasMoreElements()) {
      String paramKey = paramEnumeration.nextElement();
      if (paramKey.startsWith("tag")) {
        String value = request.getParameter(paramKey);
        tagValueList.add(value);
      }
    }

    if (tagValueList.size() > 0) {
      for (String tagId : tagValueList) {
        ProjectTag projectTag = new ProjectTag();
        projectTag.setId(tagId);
        MasterWorkTag masterWorkTag = new MasterWorkTag();
        masterWorkTag.setProjectTag(projectTag);
        masterWorkTag.setMasterWork((MasterWork) object);
        masterWorkTag.setStatus("1");
        baseManager.saveOrUpdate(MasterWorkTag.class.getName(), masterWorkTag);
      }
    }

    modelMap.put("object", object);
    return modelMap;
  }
示例#3
0
 @SuppressWarnings("unchecked")
 private static Object resolveArray(
     Invocation inv, ParamMetaData metaData, Class<?> compnentType) {
   if (compnentType == MultipartFile.class) {
     String filterName = metaData.getParamName();
     if (filterName == null) {
       filterName = "";
     }
     if (inv.getRequest() instanceof MultipartRequest) {
       List<MultipartFile> files = new LinkedList<MultipartFile>();
       MultipartRequest multipartRequest = (MultipartRequest) inv.getRequest();
       Iterator<String> names = multipartRequest.getFileNames();
       while (names.hasNext()) {
         String name = names.next();
         if (name.startsWith(filterName)) {
           files.add(multipartRequest.getFile(name));
         }
       }
       return files.toArray(new MultipartFile[0]);
     } else {
       if (logger.isDebugEnabled()) {
         logger.debug(
             "cann't "
                 + "set MultipartFile param to method "
                 + ", the request is not a MultipartRequest");
       }
     }
   } else {
     Object toConvert = null;
     for (String paramName : metaData.getParamNames()) {
       if (paramName != null) {
         toConvert = inv.getRequest().getParameterValues(paramName);
         if (toConvert != null) {
           break;
         }
       }
     }
     if (toConvert != null) {
       if (((String[]) toConvert).length == 1) {
         toConvert = ((String[]) toConvert)[0].split(",");
       }
       Class<?> arrayType;
       if (metaData.getParamType().isArray()) {
         arrayType = metaData.getParamType();
       } else {
         arrayType = arrayTypeMap.get(compnentType);
         if (arrayType == null) {
           arrayType = Array.newInstance((Class<?>) compnentType, 0).getClass();
         }
       }
       TypeConverter typeConverter = SafedTypeConverterFactory.getCurrentConverter();
       Object array = typeConverter.convertIfNecessary(toConvert, arrayType);
       return array;
     }
   }
   return Array.newInstance((Class<?>) compnentType, 0);
 }
示例#4
0
 public MultipartFile resolve(Invocation inv, ParamMetaData metaData) {
   MultipartFile multipartFile = null;
   if (inv.getRequest() instanceof MultipartRequest) {
     MultipartRequest multipartRequest = (MultipartRequest) inv.getRequest();
     String fileName = metaData.getParamName();
     if (StringUtils.isBlank(fileName)) {
       @SuppressWarnings("unchecked")
       Iterator<String> allFileNames = multipartRequest.getFileNames();
       if (allFileNames.hasNext()) {
         fileName = allFileNames.next();
       }
     }
     if (StringUtils.isNotBlank(fileName)) {
       multipartFile = multipartRequest.getFile(fileName);
     }
     if (multipartFile == null) {
       if (StringUtils.isNotBlank(fileName)) {
         if (logger.isDebugEnabled()) {
           logger.debug(
               "not found multipartFile named "
                   + fileName
                   + " in this request: "
                   + inv.getRequestPath().getUri());
         }
       } else {
         if (logger.isDebugEnabled()) {
           logger.debug(
               "not found MultipartFile named:"
                   + metaData.getParamName()
                   + " in this request: "
                   + inv.getRequestPath().getUri());
         }
       }
     }
   } else {
     if (logger.isDebugEnabled()) {
       logger.debug(
           "cann't set MultipartFile param to method "
               + ", the request is not a MultipartRequest");
     }
   }
   return multipartFile;
 }