/** * Creates a MultiPartBody from the InputStream of the body and the MediaType * * @param rawIn * @param type * @throws HandlerException */ public MultiPartBodyImpl(final InputStream rawIn, final MediaType type) throws IOException { this(rawIn, getBoundary(type)); }
@Override public MultiPartBody readFrom(Class<MultiPartBody> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, String> httpHeaders, InputStream entityStream) throws IOException, WebApplicationException { return new MultiPartBodyImpl(entityStream, mediaType); }
/** * @param result * @param disposition * @param string * @param data * @throws IOException */ private void addFileField(Disposition disposition, String mediaTypeString, byte[] data) throws IOException { String name = disposition.getName(); rawCollection.add(new KeyValuePair<ParameterValue>(name, new FormFileImpl(disposition.getFileName(), MediaType.valueOf( mediaTypeString), data))); formFiles.add(new KeyValuePair<FormFile>(name, new FormFileImpl( disposition.getFileName(), MediaType.valueOf( mediaTypeString), data))); }
InputStream input = null; if(data.getTextParameterValues(recipe) != null){ recipe = data.getTextParameterValues(recipe) [0]; if(data.getFormFileParameterValues("input") != null){ input = new ByteArrayInputStream(data.getFormFileParameterValues("input") [0].getContent());
AccessController.checkPermission(new ScriptManagerAppPermission()); UriRef scriptUri = new UriRef(form.getTextParameterValues("scriptUri")[0]); String scriptName = form.getTextParameterValues("fileName")[0]; String scriptLanguageAndVersion = form.getTextParameterValues("scriptLanguage")[0]; String mediaType = form.getTextParameterValues("mediaType")[0]; String producedType = form.getTextParameterValues("producedType")[0]; String scriptCode = form.getTextParameterValues("scriptCode")[0]; form.getFormFileParameterValues("scriptFile")[0]; byte[] scriptFileBytes = formFile.getContent(); mediaType = formFile.getMediaType().toString(); scriptName = formFile.getFileName();
if(data.getFormFileParameterValues("file").length > 0){ file = data.getFormFileParameterValues("file")[0]; }else{ log.debug("No files in multipart body"); for(String p : data.getTextParameterNames()){ this.parameters.put(p, Arrays.asList(data.getTextParameterValues(p)));
InputStream input = null; if(data.getFormFileParameterValues("recipe") != null){ recipeStream = new ByteArrayInputStream(data.getFormFileParameterValues("recipe") [0].getContent()); if(data.getFormFileParameterValues("input") != null){ input = new ByteArrayInputStream(data.getFormFileParameterValues("input") [0].getContent());
while (true) { Map<String, String> partHeaders; partHeaders = readHeaders(in); data = in.readTill(delimiter); Disposition disposition = new Disposition(dispositionString); allFieldNames.add(disposition.name); if (disposition.getFileName() != null) { addFileField(disposition, (String) partHeaders .get(HttpHeaders.CONTENT_TYPE.toLowerCase(Locale.ENGLISH)).trim(), data); } else { addTextField(disposition, data); in.read(twoBytes); if (twoBytes[0] == '-') {
private String getTextParamValueOfForm(MultiPartBody form, int index, String paramName) { String value = form.getTextParameterValues(paramName)[index]; return value.trim().length() > 0 ? value : null; }
/** * creates a MultiPartBody by parsing a stream * * @param rawIn * @param boundary * the boundary-string delimiting the parts * @throws HandlerException */ public MultiPartBodyImpl(final InputStream rawIn, final String boundary) throws IOException { rawCollection = new ArrayList<KeyValuePair<ParameterValue>>(); DelimiterInputStream in = new DelimiterInputStream(rawIn); ByteArrayOutputStream delimiterBaos = new ByteArrayOutputStream(); delimiterBaos.write(45);// dash delimiterBaos.write(45); delimiterBaos.write(boundary.getBytes("utf-8")); byte[] delimiter = delimiterBaos.toByteArray(); in.readTill(delimiter); in.read(); // 13 in.read(); // 10 delimiterBaos = new ByteArrayOutputStream(); delimiterBaos.write(LINE_BREAK); delimiterBaos.write(delimiter); readFields(in, delimiterBaos.toByteArray()); // from rfc 2616: a bare CR // or LF MUST NOT be substituted for CRLF within any of the HTTP // control // structures (such as header fields and multipart boundaries) // this means we are strict in expecting CRLF }
public ParameterValue[] getParameteValues(String parameterName) { if (rawCollection == null) { createRawCollection(); } List<ParameterValue> resultList = new ArrayList<ParameterValue>(); for (KeyValuePair<ParameterValue> keyValuePair : rawCollection) { if (keyValuePair.getKey().equals(parameterName)) { resultList.add(keyValuePair.getValue()); } } return resultList.toArray(new ParameterValue[resultList.size()]); }
/** * @param result * @param disposition * @param data */ private void addTextField(Disposition disposition, byte[] data) { String name = disposition.getName(); try { rawCollection.add(new KeyValuePair<ParameterValue>(name, new StringParameterValue(new String(data, "utf-8")))); formTexts.add(new KeyValuePair<String>(name, new String(data, "utf-8"))); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } }
int posInDelimiter = 0; while (true) { int ch = read(); if (ch == -1) { throw new DelimiterNotFoundException(baos.toByteArray()); unread(ch); unread(delimiter, 1, posInDelimiter - 1); posInDelimiter = 0; ch = delimiter[0];
public String[] getParameterNames() { if (rawCollection == null) { createRawCollection(); } List<String> resultList = new ArrayList<String>(); for (KeyValuePair<ParameterValue> keyValuePair : rawCollection) { String key = keyValuePair.getKey(); if (!resultList.contains(key)) { resultList.add(key); } } return resultList.toArray(new String[resultList.size()]); }
@Override public int size() { if (rawCollection == null) { createRawCollection(); } return rawCollection.size(); }
/** * */ private void createRawCollection() { Iterator<KeyValuePair<ParameterValue>> iterator = iterator(); if (rawCollection == null) { // the call to the implementations iterator() didn't create // rawCollection rawCollection = new ArrayList<KeyValuePair<ParameterValue>>(); while (iterator.hasNext()) { rawCollection.add(iterator.next()); } } }
/** * @param dispositionString * @throws IOException */ public Disposition(String dispositionString) throws IOException { if (dispositionString == null) { throw new RuntimeException( "No content-disposition string - contact your browser vendor"); } StringTokenizer tokens = new StringTokenizer(dispositionString, ";"); while (tokens.hasMoreTokens()) { String current = tokens.nextToken(); current = current.trim(); if (current.startsWith("name")) { name = readTokenValue(current); } else { if (current.startsWith("filename")) { fileName = readTokenValue(current); } } } }
InputStream rules = null; if(data.getTextParameterValues("description") != null){ description = data.getTextParameterValues("description") [0]; if(data.getFormFileParameterValues("rules") != null){ rules = new ByteArrayInputStream(data.getFormFileParameterValues("rules") [0].getContent());
ArrayList<UriRef> customproperties = customPropertyManager.getPropertiesOfCollection(collection); for (UriRef property : customproperties) { String[] values = form.getTextParameterValues(property.getUnicodeString()); Lock writeLock = contentGraph.getLock().writeLock(); writeLock.lock();