簡體   English   中英

如何在不讓用戶保存文件的情況下將 Java 上的文件流式傳輸到瀏覽器?

[英]How to do file streaming on Java to the browser without letting the user save the file?

我對此有點新手,所以我不知道。 解釋:

我有一個 web 應用程序(前端用 JavaScript/Reactjs 制作)和一個后端(使用 Liferay API 的 Java)

服務器有文件(文件 A、B、C 等。任何類型的文件:pdf、excel、來自后端的音頻、txt 等)這些文件位於不同的位置。

當我從 java 后端調用文件時,每個文件都有自己的“ID”,我這樣調用: https://url-server.com8這會自動觸發下載。 URL 受到身份驗證方法的保護。 我無權使用這些文件訪問此服務器。 我只能使用這個以 ID 作為參數的端點。

目標:將此文件直接流式傳輸給用戶(例如https://web-app.com/anotherNameForFile.txt顯然只是將 url 從具有不同名稱文件的原始服務器映射到瀏覽器,因此用戶可以“請參閱”或在瀏覽器中使用文件,但無法將文件下載到 PC。 有點像 Spotify 或 Netflix。 該文件仍將保留在服務器中,流式傳輸給用戶,並且無法下載或復制用戶在應用程序/瀏覽器中看到的文件。

問題:如何做到這一點? 最好的方法是什么? 如何進行流式傳輸以及如何在用戶無法保存文件的情況下進行流式傳輸? 任何評論甚至代碼示例都將不勝感激。

我想說你可以從這個線程中獲得靈感: Web Audio-streaming file from server to client

除此之外,一種簡單的方法是使用<audio>標記將其連接到您的 HTML 代碼中。 如果您想要使用 ReactJS 的解決方案,那么您需要制作一個腳本,該腳本通過組件的輸入嚴格播放音頻。 可以通過這個備用線程獲得一些靈感: 在 React.js 中播放聲音

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM