コード例 #1
0
 /**
  * Check from the request ContentType if this request is a Multipart request.
  *
  * @return an array of String if multipartDataBoundary exists with the multipartDataBoundary as
  *     first element, charset if any as second (missing if not set), else null
  */
 protected static String[] getMultipartDataBoundary(String contentType) {
   // Check if Post using "multipart/form-data; boundary=--89421926422648 [; charset=xxx]"
   String[] headerContentType = splitHeaderContentType(contentType);
   if (headerContentType[0].toLowerCase().startsWith(HttpHeaders.Values.MULTIPART_FORM_DATA)) {
     int mrank;
     int crank;
     if (headerContentType[1].toLowerCase().startsWith(HttpHeaders.Values.BOUNDARY)) {
       mrank = 1;
       crank = 2;
     } else if (headerContentType[2].toLowerCase().startsWith(HttpHeaders.Values.BOUNDARY)) {
       mrank = 2;
       crank = 1;
     } else {
       return null;
     }
     String boundary = StringUtil.substringAfter(headerContentType[mrank], '=');
     if (boundary == null) {
       throw new ErrorDataDecoderException("Needs a boundary value");
     }
     if (boundary.charAt(0) == '"') {
       String bound = boundary.trim();
       int index = bound.length() - 1;
       if (bound.charAt(index) == '"') {
         boundary = bound.substring(1, index);
       }
     }
     if (headerContentType[crank].toLowerCase().startsWith(HttpHeaders.Values.CHARSET)) {
       String charset = StringUtil.substringAfter(headerContentType[crank], '=');
       if (charset != null) {
         return new String[] {"--" + boundary, charset};
       }
     }
     return new String[] {"--" + boundary};
   }
   return null;
 }
コード例 #2
0
 @Override
 public String toString() {
   return StringUtil.simpleClassName(this) + "(name: " + name() + ", size: " + size() + ')';
 }