Pregunta

Estoy intentando usar un resultado de transmisión para devolver una imagen desde una aplicación struts2. Parece que estoy teniendo problemas con la configuración de la acción. Aquí está la configuración:

    <result name="success" type="stream">
            <param name="contentType">image/jpeg</param>
            <param name="inputName">inputStream</param>
            <param name="contentDisposition">filename="${filename}"</param>
            <param name="bufferSize">1024</param>
    </result>

El problema parece ser el parámetro inputName que, según los documentos, es:

  

el nombre de la propiedad InputStream de la acción encadenada (predeterminado = inputStream).

No estoy seguro de qué nombre debo poner allí. El error que recibo es:

  

No se puede encontrar un java.io.InputStream con el nombre [inputStream] en la pila de invocación.

¿Alguien ha usado esto antes? ¿Algún consejo?

Gracias.

¿Fue útil?

Solución 2

Encontré this lo que explica que el InputStream tiene que ser creado por mí. Tiene sentido crear un InputStream a partir del archivo que quiero que el usuario descargue y luego pasar el Stream al resultado. Supongo que esa es mi respuesta.

Otros consejos

Creo que tienes la disposición de contenido incorrecta, debería ser:

<param name="contentDisposition">attachment; filename="${filename}"</param>

( Chris )

Nombre de entrada define el nombre del método que genera el " flujo "

InputStream público getInputStream ()   {     devolver nuevo ByteArrayInputStream (_bytes);   }

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top