stream video from struts2 ação multiple contentType?

Estou tentando reproduzir um arquivo de vídeo, pois minha ação contentType está definida como

aplicação / octeto-stream

Agora, se eu alterá-lo para áudio / MPEG, então o usuário não pode baixar outros tipos de arquivos. Eu gostaria de simplesmente saber se podemos definir vários tipos de conteúdo, se assim como? e se não for possível o que devo fazer em uma situação onde o usuário pode fazer o upload e download de qualquer tipo de arquivo.

Claro que você pode.

Você deve gerar o tipo de resultado do stream de sua ação e especificar um contentType paramétrico , por exemplo:

Struts.xml

 ${yourContentType} inputStream attachment;filename="${yourFileName}" 1024  

Açao

 @Getter @Setter private InputStream inputStream; @Getter private String yourContentType; @Getter private String yourFileName; public String execute() throws Exception { yourContentType = "audio/mpeg"; yourFileName = "yourStuff.mp3"; byte[] yourContent = loadTheContentInSomeWay(); setInputStream(new ByteArrayInputStream(yourContent)); return SUCCESS; } 

Você pode parametrizar a parte contentDisposition para especificar quando um arquivo deve ser aberto como attachment (pedir para download) ou inline (aberto no navegador) de acordo com suas necessidades.