【问题标题】:How can i browse file without uploading in GXT?如何在不上传 GXT 的情况下浏览文件?
【发布时间】:2013-04-19 18:17:52
【问题描述】:

我是 GXT 的初学者,我想知道是否有一种方法可以在不上传文件的情况下解析文件并提取一些信息。

我创建了一个包含 uploadFile 表单的表单面板,但我不知道下一步是什么,如何获取文件的完整路径以便我可以使用 java io 读/写或如何检索文件,或者是否有替代方法解决办法,谢谢。

最好的问候。

【问题讨论】:

  • 欢迎来到Stack Overflow。请告诉我们您已经尝试过什么以及什么失败了。谢谢!

标签: gwt gxt


【解决方案1】:

您可以在一些现代浏览器中使用最先进的 HTML5 api 来执行此操作,您需要使用 GWT JSNI 代码。没有来自 GWT 团队的 api。

HTML5 文件阅读器

FileReader 包括四个用于异步读取文件的选项:

FileReader.readAsBinaryString(Blob|File) - The result property will contain the file/blob's data as a binary string.
FileReader.readAsText(Blob|File, opt_encoding) - The result property will contain the file/blob's data as a text string. 
FileReader.readAsDataURL(Blob|File) - The result property will contain the file/blob's data encoded as a data URL.
FileReader.readAsArrayBuffer(Blob|File) - The result property will contain the file/blob's data as an ArrayBuffer object.

GWT 包装器示例 - https://github.com/bradrydzewski/gwt-filesystem

您可以从这里了解更多信息 - How to retrieve file from GWT FileUpload component?

【讨论】:

  • 正如@colin 在我的回答中所说的那样。它的浏览器解决方案有限。
  • 你如何保证所有用户都会使用现代浏览器??那么服务器端验证呢??
  • 由于用户要求解决方案而不将文件上传到服务器端,唯一的方法(没有闪存)是使用仅在某些浏览器中可用的FileApi(现在他们有一个很大的共享市场)。
【解决方案2】:

恕我直言 你看不懂。

出于安全原因,javascript(gwt) 无权访问系统驱动器文件

http://en.wikipedia.org/wiki/JavaScript#Security

Opening a file in local file system in javascript

为了获取文件,您需要进行服务器调用。

相反,您可以在服务器端进行验证并向用户发送适当的消息。

P.S : 我没有考虑现代浏览器的概念。如果有人在所谓的现代浏览器之外打开会发生什么?程序会运行相同吗?做服务器端验证总是更好..

【讨论】:

  • 我们可以使用 HTML5 FileReader api 的。
  • 您只能在支持它的有限浏览器集中使用它-对于其他所有内容,您必须将其发送到服务器(如this answer建议的那样),或使用另一个插件来读取它(flash等)。
  • 我没有投反对票,我同意你的观点,并试图证明@SSR 的提议并非在所有情况下都有效。
猜你喜欢
  • 1970-01-01
  • 2015-02-20
  • 1970-01-01
  • 1970-01-01
  • 2014-06-30
  • 2015-08-06
  • 1970-01-01
  • 2011-07-12
  • 1970-01-01
相关资源
最近更新 更多