是否有可能从java applet将OutputStream连接到浏览器的下载窗口?

Is it possible to connect an OutputStream to the download window of a browser fron a java applet?

本文关键字:浏览器 下载 窗口 连接 OutputStream 有可能 java applet 是否      更新时间:2023-09-26

看,我正在开发一个web应用程序,通过HTTP请求从服务器下载文件,但在某种情况下,文件不在服务器中,而是在applet本身,我的意思是,一些二进制内容是在applet内部动态生成的,它必须下载。当然,我可以使用java库将文件保存在客户端文件系统中(如果applet是签名的),但我想知道是否可以将java OutputStream连接到浏览器的下载窗口,换句话说,从applet开始下载。我疯了吗?

顺便问一下,有没有可能在javascript中做类似的事情?

不,通过将applet的输出附加到浏览器的标准文件下载机制来绕过安全是不可能的。

OTOH,自Next Generation Java Plug-In以来,为了将文件(/bytes)保存到本地文件系统,不再需要签名和受信任的applet。追踪Applet信息中的链接。点击这里了解更多细节。做个演示。关于如何使用JNLP API服务(插件2为实现此功能而与之挂钩),请参见文件服务演示。

你可以将文件上传到服务器,然后强制浏览器(通过LiveConnect或其他方式)从服务器打开该文件。

据我所知,没有跨浏览器的方式来模拟从applet内下载。所以你应该自己创建下载,让浏览器做它最擅长的事情。

显然,将流的实际创建移到服务器端是很有意义的。