java - 从 struts2 操作多个 contentType 流视频?

标签 java struts2 mime-types

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

application/octet-stream

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

最佳答案

当然可以。

您必须输出 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(在以下位置打开)浏览器)根据您的需要。

关于java - 从 struts2 操作多个 contentType 流视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16297721/

相关文章:

java - 接口(interface)中有更多枚举

java - 有什么方法可以模拟 HTTP 错误响应 5xx 和 4xx

java - Maven Resolver 始终从远程存储库下载 maven-metadata.xml

java - 在weblogic 10.3.6上部署struts2.5 war文件时无法加载Action类

java - 如何检测在单个 Action 类中的多个提交按钮场景中单击的提交按钮?

java - Struts 2 - 禁用操作类中的提交按钮

java - 我怎样才能在 Android 上反序列化一个非常大的类?

android - 在 Android 上从谷歌驱动器打开自定义文件扩展名

c++ - MIME 类型到文件扩展名的跨平台映射库,反之亦然

ruby-on-rails - 路由将 JSON 请求解释为 HTML?