我正在尝试播放视频文件,因为我的操作 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/