JavaWOPI:GetFileContentAPI的返回类型应该是什么?
我已经在Microsoft的Office 365云存储合作伙伴计划下成功地使用Microsoft的Office Online客户端实现了JAVA WOPI主机JavaWOPI:GetFileContentAPI的返回类型应该是什么?,java,ms-office,ms-wopi,Java,Ms Office,Ms Wopi,我已经在Microsoft的Office 365云存储合作伙伴计划下成功地使用Microsoft的Office Online客户端实现了JAVA WOPI主机现在我想使用自定义WOPI客户端(Office Web Apps Server)实现相同的流程我假设wopi主机代码中的更改最小。到目前为止,我已经实现了以下内容: 部署在Windows Server 2012 R2上 启动WOPI主机 GetFileInfo API是第一个应该获得invoke的API,是的,它正在获得invoke,我可
现在我想使用自定义WOPI客户端(Office Web Apps Server)实现相同的流程
我假设wopi主机代码中的更改最小。到目前为止,我已经实现了以下内容:
- 部署在Windows Server 2012 R2上
- 启动WOPI主机
- GetFileInfo API是第一个应该获得invoke的API,是的,它正在获得invoke,我可以看到带有适当值的JSON
- GetFileContentAPI也在GetFileInfo API调用之后得到调用,但我在浏览器上看不到该文件
下面是get file content的JAVA代码片段,我可以看到这个方法get invoke并以字节流的形式发回文件内容,但在浏览器上看不到文件。
这与我们在Office Online中使用的方法相同,但在Office Web Apps Server中不起作用 任何输入或指针都将不胜感激。
Optional first=findFile(fileId);
Optional<java.nio.file.Path> first = findFile(fileId);
if (first.isPresent()) {
return Response.ok(new File(first.get().toUri()), APPLICATION_OCTET_STREAM).build();
} else {
return Response.status(Status.BAD_REQUEST.getStatusCode(), "No file found with the " +
"name " + fileId).build();
}
private Optional<java.nio.file.Path> findFile(String fileName) throws IOException {
File filePath= getPath();
try (Stream<java.nio.file.Path> stream = Files.find(filePath, 1, (path, attr) -> path.getFileName().toString().toLowerCase().equals(fileName.toLowerCase()))) {
return stream.findFirst();
}
}
if(first.isPresent()){
返回Response.ok(新文件(first.get().toUri()),APPLICATION_OCTET_STREAM.build();
}否则{
return Response.status(status.BAD_REQUEST.getStatusCode(),“找不到包含的文件”+
“name”+fileId.build();
}
私有可选findFile(字符串文件名)引发IOException{
文件filePath=getPath();
try(Stream=Files.find(filePath,1,(path,attr)->path.getFileName().toString().toLowerCase().equals(fileName.toLowerCase())){
返回stream.findFirst();
}
}
这个代码对我有用。你可以试试这个你想编辑什么类型的文件?Word,Excel?你说你部署了OWA(不是OOS),它需要钴作为单词…这可能就是原因。更多信息请访问
Optional<java.nio.file.Path> first = findFile(fileId);
if (first.isPresent()) {
return Response.ok(new File(first.get().toUri()), APPLICATION_OCTET_STREAM).build();
} else {
return Response.status(Status.BAD_REQUEST.getStatusCode(), "No file found with the " +
"name " + fileId).build();
}
private Optional<java.nio.file.Path> findFile(String fileName) throws IOException {
File filePath= getPath();
try (Stream<java.nio.file.Path> stream = Files.find(filePath, 1, (path, attr) -> path.getFileName().toString().toLowerCase().equals(fileName.toLowerCase()))) {
return stream.findFirst();
}
}