我有一个带有字节数组的.NET Web服务。
我有一个GWT客户端,我希望用户使用FileUpload控件选择一个文件,并通过HTTP流将其发送到Web服务。
文件上载控件包含获取所选文件的文件路径的方法。 如何获取该文件并将其转换为字节数组?
我愿意接受有关如何将文件发送到我的Web服务的建议,不太确定Byte数组是否可行...
答案 0 :(得分:1)
如果要在GWT中转换文件,意味着在浏览器中。仅使用JavaScript在浏览器中无法实现。 FileUpload
是一个html输入类型的文件上传只能像提交表单一样将文件发送到服务器。出于安全考虑,浏览器无法从文件系统中读取文件。 (你可以使用像flash插件这样的插件来使它工作,虽然我手头没有例子。)
如果您要将文件内容发送到您的网络服务,您需要或直接将其上传到网络服务或将其发送到另一台服务器,转换它并从该服务器提交给您的网络服务或写或找一些(闪存) )为你做的插件。
答案 1 :(得分:0)
此链接可能对您How to convert a byte array to a string, and string to a byte array with GWT
有帮助String(byte [] bytes)构造函数和String.getBytes()方法不是由GWT JRE仿真String类实现的。
答案 2 :(得分:0)
这在纯粹的Javascript(但尚未实现)中是不可能的,但可以使用flash或签名的applet完成。就个人而言,我要做的是创建一个签名的小程序,它将在页面上的某个位置但不可见。当用户选择要发送到服务器的文件时,您将从输入中获取文件位置并将其发送到applet,该applet将加载文件并将数据作为字节数组返回到Javascript。如果您可以灵活地更改Web服务以接受多部分表单数据,那么您可以这样做,只需将文件上载字段作为表单的一部分包含在内并提交表单。现在您可以使用HTML5进行操作,并且可以看到演示here,因此,如果您能够指定用户至少使用符合HTML5标准的半浏览器,例如FF3.6或Chrome 6你可能很幸运。