来自struts2的视频流动作多个contentType?

时间:2013-04-30 10:29:53

标签: java struts2 mime-types

我正在尝试播放视频文件,因为我的操作内容设置为

  

应用/八位字节流

现在,如果我将其更改为audio / mpeg,则用户无法下载其他类型的文件。我想知道我们可以设置多种内容类型,如果是这样的话怎么样?如果不可能,我应该在用户可以上传和下载任何类型的文件的情况下做什么。

1 个答案:

答案 0 :(得分:2)

当然可以。

您必须从操作中输出 Stream Result type ,并指定参数contentType ,例如:

struts.xml中

<result name="success" type="stream">
  <param name="contentType">${yourContentType}</param>
  <param name="inputName">inputStream</param>
  <param name="contentDisposition">attachment;filename="${yourFileName}"</param>
  <param name="bufferSize">1024</param>
</result>

动作

@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;
}

您可以参数化contentDisposition部分,以指定何时必须根据您的需要打开文件attachment(要求下载)或inline(在浏览器中打开)。