java - 将文件从 Javascript 传递到 Java Uploader Applet

标签 java javascript file applet

我有一些 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库)的应用程序的一部分。将新元素添加到 Canvas 区域后,用户可以选择一个元素并向该元素添加/分配一些文件(任何图像文件)。图像不必加载到 Canvas 区域,只需在选择特定元素时它们的名称应显示在 Canvas 下方的列表中。当然,它们也可以被删除。

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

不幸的是,有一种情况需要将文件加载到 Canvas 中并在确认后发送到 ftp 服务器 - 背景图像文件。

最佳答案

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

关于java - 将文件从 Javascript 传递到 Java Uploader Applet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12273694/

相关文章:

python - 被python文件模式迷惑 "w+"

php - MySQLdump 结果有很多注释行,没有真正的内容

java - java中带有二维键的映射

javascript - 覆盖 Primefaces 特定小部件的方法

java - 如何设置 jformattedtextfield 仅采用 2 个值?

javascript - 当 "onChange"已为不同功能保留时,如何避免在 react 输入字段中使用空格?

php - 为什么 PHP 一次发送所有内容?

PHP:在 CLI 和 Apache 之间使用 is_readable() 的结果不同

Java - 获取当前计算机声音输出

java - ArrayList快速查找自定义对象