如何在不让用户保存文件的情况下将java上的文件流传输到浏览器?

fkaflof6  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(294)

我是个新手,所以我不知道。说明:
我有一个web应用程序(前端是javascript/reactjs)和一个后端(java使用liferay api)
服务器有文件(文件a、b、c等。任何类型的文件:pdf、excel、音频、txt等)这些文件位于与后端不同的位置。
每个文件都有自己的“id”,当我从java后端调用该文件时,我这样调用:https://url-server.com?id=123456789 这会自动触发下载。url受身份验证方法保护。我无法使用这些文件访问此服务器。我只能使用id为参数的端点。
目标:将此文件直接流式传输给用户(例如https://web-app.com/anothernameforfile.txt 很明显,这只是将url从具有不同名称的原始服务器(文件)Map到浏览器,这样用户就可以在浏览器中“查看”或使用文件,但无法将文件下载到pc上,有点像spotify或netflix。该文件仍将保存在服务器中,流式传输给用户,并且不选择下载或复制用户在应用程序/浏览器中看到的文件。
问题:如何做到这一点?最好的方法是什么?如何进行流式传输,以及如何在用户无法保存文件的情况下进行流式传输?任何意见,甚至代码的例子将不胜感激。

zqdjd7g9

zqdjd7g91#

我想说你可以从这个线索中得到灵感:从服务器到客户端的网络音频流文件
除此之外,一个简单的方法是使用 <audio> 标签。如果您想要一个使用reactjs的解决方案,那么您需要制作一个脚本,通过组件的输入严格地播放音频。通过这个交替的线程可以获得一些灵感:在react.js中播放声音

相关问题