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.