1
我試圖播放視頻文件時,我的行動的contentType設置爲來自struts2的流視頻action multiple contentType?
現在,如果我將其更改爲音頻/ MPEG,那麼用戶不能下載其他類型應用程序/八位字節流
的文件。我想知道我們是否可以設置多個內容類型?如果無法在用戶可以上傳和下載任何類型的文件的情況下做什麼。
我試圖播放視頻文件時,我的行動的contentType設置爲來自struts2的流視頻action multiple contentType?
現在,如果我將其更改爲音頻/ 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
部分以指定w當一個文件必須根據你的需要打開爲attachment
(請求下載)或inline
(在瀏覽器中打開)。
byte [] yourContent = loadTheContentInSomeWay();我不明白 – 2017-05-05 06:25:11
@srinivasgowda你需要一種方法來從你有的來源加載你的byte []:從文件,從數據庫,從服務,從隊列,ecc ....因爲它與這個答案無關,我已經包裝它一個名爲'loadTheContentInSomeWay();'的假方法。幾乎不言自明,我希望(四):) – 2017-05-05 07:38:50