Mi situación actual es: Tengo que leer un archivo y poner el contenido en InputStream
. Después tengo que colocar el contenido del InputStream
en una matriz de bytes que requiere (hasta donde sé) el tamaño de InputStream
. ¿Algunas ideas?Determine el tamaño de un InputStream
a lo solicitado, que mostrará la secuencia de entrada que estoy creando a partir de un archivo cargado
InputStream uploadedStream = null;
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
java.util.List items = upload.parseRequest(request);
java.util.Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
uploadedStream = item.getInputStream();
//CHANGE uploadedStreambyte = item.get()
}
}
La solicitud es un objeto HttpServletRequest
, que es como el FileItemFactory
y ServletFileUpload
es desde el paquete de Apache Commons FileUpload.
Actualmente guardo el archivo en un campo blob en la base de datos y lo envío como binarystream (entrada como un inputstream), ahora requiero el inputstream en una matriz de bytes ya que necesito hacer una firma de datos y la función solo toma matrices de bytes. – ChronoXIII
item.get() te ordena la matriz de bytes, como mencioné. Y no se preocupe por el rendimiento de un tamaño a menos que esté trabajando con varias imágenes de MB. – akarnokd
Ese podría ser el caso, ya que un usuario carga la imagen y parece que no puedo encontrar la forma de recortar automáticamente las imágenes en el lado del servidor. :( – ChronoXIII