我有一些 Java Applet,我想用它来将文件/文件上传到 FTP 服务器。最重要的方法是上传(字符串 ftpServer、字符串用户名、字符串密码、字符串文件路径、文件源文件)。在 JS 代码中,我存储了从 input="file" 获取的数组数据(用户可以将文件附加和删除到他之前创建的不同对象,所以我必须将这些数据存储在某个地方)。
问题是文件数据由 JS File 对象表示,当调用上传函数时被识别为 sun.plugin2.main.client.MessagePassingJSObject (尝试初始化新的 java.io.File 对象时也是如此)。
所以问题是:是否有可能以某种方式将与 java.io.File 兼容的对象或有关文件的数据(我猜只有完整路径)传递给 Java 小程序?
如果没有,有没有办法从使用 FileReader 读取的 Java 代码文件上传到字符串(例如使用 .readAsBinaryString 方法)?
或者是否存在针对我的问题的任何其他解决方案?
编辑:
更多上下文:
Ftp 上传小程序是应用程序的一部分,它使用 canvas 元素(具体来说是 fabric.js 库)。将新元素添加到画布区域后,用户可以选择一个元素并向该元素添加/分配一些文件(任何图像文件)。图像不必加载到Canvas区域,只需在选择特定元素时,它们的名称应显示在Canvas下面的列表中。当然,它们也可以被删除。
用户确认完成后,将一些数据发送(发布)到服务器端以准备控制文件,然后将该文件上传到 ftp 服务器。控制文件中所需的有关选定文件的唯一信息是文件名,因此我认为可以将文件选择器添加到小程序而不是 JS 代码,而不是从小程序发送数据或将其传递给 javascript,然后发送。在发布控制文件数据之前或之后,用户选择的所有文件也应上传到 ftp 服务器。
不幸的是,有一种情况是必须将文件加载到画布中并在确认后发送到 ftp 服务器 - 背景图像文件。