Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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
Java 无法使用gwt读取word和pdf文件_Java_Javascript_Gwt - Fatal编程技术网

Java 无法使用gwt读取word和pdf文件

Java 无法使用gwt读取word和pdf文件,java,javascript,gwt,Java,Javascript,Gwt,我想在GWT客户端中读取.doc和.pdf文件。我正在使用以下包:org.vectomatic.file 以下是我的代码: fileUpload.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { uploadChecking(); event.getNativeEvent().getEventTarget(); Fil

我想在GWT客户端中读取.doc和.pdf文件。我正在使用以下包:org.vectomatic.file

以下是我的代码:

fileUpload.addChangeHandler(new ChangeHandler() {

  @Override
  public void onChange(ChangeEvent event) {
      uploadChecking();

      event.getNativeEvent().getEventTarget();
      FileList fileList = FileList.fromEvent(event.getNativeEvent());
      FileReader reader = FileReader.create();
      File file = fileList.get(0);

      reader.readAsBinaryString(file, progressCallback);
  }
});

ProgressCallback progressCallback= new ProgressCallback() {

        @Override
        public void onError(ProgressEvent e) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onLoad(ProgressEvent e) {
            String result =e.getResult();
    }
}
若我上传了一个.txt文件,那个么它会在结果中给出正确的数据。上传PDF和.doc时,它会给出一些字符。有没有办法获得正确的数据,或者有没有办法直接从文件中读取字节,因为我认为它可以克服这个问题


我想要客户端的文件内容,因为它在进入服务器之前需要一些处理。

文件扩展名为.doc的Microsoft Word文档和PDF文档都是二进制格式的。你试过用文本编辑器打开那些文件吗?您应该看到它们不是可读的文本。docx文件以一种更易于访问的格式存储-它们可以解压,解压后的文件可读。您可以尝试将Apache和Apache之类的库移植到GWT,但这需要大量的工作@从文件中读取字节将克服这个问题,java.nio.file有Files.readAllBytes方法。那么,这是模拟它的gud方式吗?@AndyKing gwt中没有用于从文件读取字节的包?@user2202354您从Google代码中使用的org.vectomatic.file项目似乎是目前最好的解决方案,它可以工作。我认为您正在读取.doc和.pdf文件,但它们是二进制文件,因此您必须做一些工作才能将它们作为文本读取。您也可以将外观视为使用起来很好。@Parvathy无法在GWT中使用FileReadAllBytes-您必须使用HTML5文件API。您可以使用Elemental或使用另一个包装器(如org.vectomatic.file)来实现这一点。要在沙盒外部访问客户端文件系统中的文件,用户必须从输入控件中选择文件,或将文件拖动到可拖放的目标。