Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文件从Javascript传递到Java Uploader小程序_Java_Javascript_File_Applet - Fatal编程技术网

将文件从Javascript传递到Java Uploader小程序

将文件从Javascript传递到Java Uploader小程序,java,javascript,file,applet,Java,Javascript,File,Applet,我有一些Java小程序,我想用来上传文件到FTP服务器。最重要的方法是上传(字符串ftpServer、字符串用户名、字符串密码、字符串文件路径、文件源文件)。 在JS代码中,我将从input=“file”获取的数据存储在数组中(用户可以将文件附加和删除到他以前创建的不同对象上,所以我必须将这些数据存储在某个地方) 问题在于,调用upload函数时,文件数据由JS文件对象表示,识别为sun.plugin2.main.client.MessagePassingJSObject(在尝试初始化新的jav

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

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

因此,问题是: 是否可以通过某种方式将与java.io.File兼容的对象或有关文件的数据(我猜只有完整路径)传递给java小程序

如果没有,是否有方法将使用FileReader读取的Java代码文件上载到String(例如使用.readAsBinaryString方法)

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

编辑:

更详细一点:

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

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


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

我不知道如何通过将HTML5创建的ArrayBuffer传递给小程序,但这是可能的(而且可能更兼容跨浏览器)要生成Java文件选择器并从磁盘读取文件,请使用小程序(您可以在不签署小程序的情况下执行此操作)。

AFAIU类型为
file
输入不向JS(或Java或服务器)提供允许任何人确定本地磁盘上文件名或路径的对象。所以基本上,你所尝试的是注定要失败的。重新思考工作流程@user1643723似乎有一些有用的建议。正如我在javascript规范中读到的,这些数据不能传递到不同的计算机,所以我认为可以从JS传递到Java小程序,因为它们都在同一台机器上运行。我考虑将file choose功能添加到小程序中,而不是添加到javascript代码中,但我试图避免这种情况(我不会在这里粘贴代码来解释原因,它很长)。看起来我没有选择余地。“不会在这里粘贴代码来解释原因”尝试使用2到3句简单的单词来解释原因。