将文件从Javascript传递到Java Uploader Applet

Pass File from Javascript to Java Uploader Applet

本文关键字:Java Uploader Applet 文件 Javascript      更新时间:2023-09-26

我有一些Java Applet,我想用它将文件上传到FTP服务器。最重要的方法是上传(字符串ftpServer、字符串用户名、字符串密码、字符串文件路径、文件源文件)。在JS代码中,我已经存储在从input="file"获取的数组数据中(用户可以将文件附加到他之前创建的不同对象并将其删除,所以我必须将这些数据存储在某个地方)。

问题是,文件数据由JS file对象表示,当调用上传函数时,它被识别为sun.plugin2.main.client.MessagePassingJSObject(当尝试初始化新的java.io.file对象时也是如此)。

所以问题是:有没有可能以某种方式将与java.io.File兼容的对象或关于文件的数据(我猜只有完整路径)传递给java小程序?

如果没有,是否有一种方法可以从用FileReader读取的Java代码文件上传到String(例如用.readAsBinaryString方法)?

或者我的问题是否有其他解决方案?

编辑:

更多上下文:

Ftp上传小程序是应用程序的一部分,它使用canvas元素(具体来说是fabric.js库)。用户在将新元素添加到画布区域后,可以选择一个元素并将一些文件添加到该元素(任何图像文件)。图像不必加载到画布区域,只要选择特定元素时,它们的名称就应该出现在画布下方的列表中。当然,它们也可以被移除。

在用户确认他完成了一些数据后,发送(张贴)到服务器端准备一个控制文件,然后将该文件上传到ftp服务器。控制文件中所需的关于所选文件的唯一信息是文件名,所以我认为可以将文件选择器添加到小程序中,而不是JS代码,而不是从小程序发送数据或将其传递给javascript然后发送。在发布控制文件数据之前或之后,用户选择的所有文件也应上传到ftp服务器。

不幸的是,有一种情况是,必须将文件加载到画布中,并在确认后发送到ftp服务器——背景图像文件。

我不知道有什么方法可以通过Live Connect将HTML5创建的ArrayBuffer传递到小程序,但可以(可能更兼容跨浏览器)生成Java文件选择器并使用小程序从磁盘读取文件(使用JNLP FileOpenService,您可以在不签名小程序的情况下完成)。