com.oreilly.servlet.multipart.ParamPart Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cos Show documentation
Show all versions of cos Show documentation
Cos.
The version 2024.5.0.0 is for Servlet 5.0.0.
// Copyright (C) 1999-2001 by Jason Hunter .
// All rights reserved. Use of this class is limited.
// Please see the LICENSE for more information.
package com.oreilly.servlet.multipart;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.servlet.ServletInputStream;
/**
* A ParamPart
is an upload part which represents a normal
* INPUT
(for example a non TYPE="file"
) form
* parameter.
*
* @author Geoff Soutter
* @author Jason Hunter
* @version 1.1, 2002/04/30, added better encoding support, thanks to
* Changshin Lee
* @version 1.0, 2000/10/27, initial revision
*/
public class ParamPart extends Part {
/** contents of the parameter */
private byte[] value;
private String encoding;
/**
* Constructs a parameter part; this is called by the parser.
*
* @param name the name of the parameter.
* @param in the servlet input stream to read the parameter value from.
* @param boundary the MIME boundary that delimits the end of parameter value.
* @param encoding the byte-to-char encoding to use by default
* value.
*/
ParamPart(String name, ServletInputStream in,
String boundary, String encoding) throws IOException {
super(name);
this.encoding = encoding;
// Copy the part's contents into a byte array
PartInputStream pis = new PartInputStream(in, boundary);
ByteArrayOutputStream baos = new ByteArrayOutputStream(512);
byte[] buf = new byte[128];
int read;
while ((read = pis.read(buf)) != -1) {
baos.write(buf, 0, read);
}
pis.close();
baos.close();
// save it for later
value = baos.toByteArray();
}
/**
* Returns the value of the parameter as an array of bytes or a zero length
* array if the user entered no value for this parameter.
*
* @return value of parameter as raw bytes
*/
public byte[] getValue() {
return value;
}
/**
* Returns the value of the parameter in as a string (using the
* parser-specified encoding to convert from bytes) or the empty string
* if the user entered no value for this parameter.
*
* @return value of parameter as a string.
* @throws UnsupportedEncodingException ...
*/
public String getStringValue()
throws UnsupportedEncodingException {
return getStringValue(encoding);
}
/**
* Returns the value of the parameter in the supplied encoding
* or empty string if the user entered no value for this parameter.
* @param encoding ...
* @return value of parameter as a string.
* @throws UnsupportedEncodingException ...
*/
public String getStringValue(String encoding)
throws UnsupportedEncodingException {
return new String(value, encoding);
}
/**
* Returns true
to indicate this part is a parameter.
*
* @return true.
*/
public boolean isParam() {
return true;
}
}