Java 无法使用gwt读取word和pdf文件
我想在GWT客户端中读取.doc和.pdf文件。我正在使用以下包:org.vectomatic.file 以下是我的代码: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
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)来实现这一点。要在沙盒外部访问客户端文件系统中的文件,用户必须从输入控件中选择文件,或将文件拖动到可拖放的目标。