code: private String getFileName(Map /* String, String */ headers) {
          String fileName = null;
          String cd = getHeader(headers, CONTENT_DISPOSITION);
          if (cd != null) {
              String cdl = cd.toLowerCase();
              if (cdl.startsWith(FORM_DATA) || cdl.startsWith(ATTACHMENT)) {
                  ParameterParser parser = new ParameterParser();
                  parser.setLowerCaseNames(true);
                  // Parameter parser can handle null input
                  Map params = parser.parse(cd, ';');
                  if (params.containsKey("filename")) {
                      fileName = (String) params.get("filename");
                      if (fileName != null) {
                          fileName = fileName.trim();
                          // IE7 returning fullpath name (#300920)
                          if (fileName.indexOf('\\') != -1) {
                              fileName = fileName.substring(fileName.lastIndexOf('\\') + 1);
                          }
  
                      } else {
                          // Even if there is no value, the parameter is present,
                          // so we return an empty file name rather than no file
                          // name.
                          fileName = "";
                      }
                  }
              }
          }
          return fileName;
      }
docs: Retrieves the file name from the <code>Content-disposition</code>
  header.
  
  @param headers A <code>Map</code> containing the HTTP request headers.
  @return The file name for the current <code>encapsulation</code>.