private Param createParam(Map<String, String> headers) {
    Param param = null;
    String paramName = headers.get(PARAM_NAME);
    if (paramName != null) {
      if (headers.containsKey(PARAM_FILENAME)) {
        FileParam fp = new FileParam(paramName);
        this.keys.add(paramName);

        if (createTempFiles) {
          fp.createTempFile(tempFilesDirectory);
        }
        fp.setContentType(headers.get(PARAM_CONTENT_TYPE));
        fp.setFilename(decodeFileName(headers.get(PARAM_FILENAME)));
        param = fp;
      } else {
        if (parameters.containsKey(paramName)) {
          param = parameters.get(paramName);
        } else {
          param = new ValueParam(paramName, encoding);
        }
      }

      if (!parameters.containsKey(paramName)) {
        parameters.put(paramName, param);
      }
    }

    return param;
  }
Example #2
0
  /**
   * 获取 上传文件 映射
   *
   * @return
   */
  public Map<String, List<FileParam>> getFileMap() {

    Map<String, List<FileParam>> fileMap = new HashMap<String, List<FileParam>>(0);
    if (MapUtils.isNotEmpty(fileMap)) {
      for (FileParam fileParam : fileParamList) {
        String fieldName = fileParam.getFieldName();
        List<FileParam> fileParams;
        if (fileMap.containsKey(fieldName)) {
          fileParams = fileMap.get(fieldName);
        } else {
          fileParams = new ArrayList<FileParam>(0);
        }
        fileParams.add(fileParam);
        fileMap.put(fieldName, fileParams);
      }
    }
    return fileMap;
  }
  public void cancel() {
    this.canceled = true;

    if (parameters != null) {
      Iterator<Param> it = parameters.values().iterator();
      while (it.hasNext()) {
        Param p = it.next();
        if (p instanceof FileParam) {
          ((FileParam) p).deleteFile();
        }
      }
    }
  }