赞
踩
可以参考:
1.Win7上通过DckerToolbox部署OnlyOffice
1.下载官网示例代码
2.官网案例运行
Jdk1.8、windows操作系统、maven、tomcat(使用idea不需要安装)、eclipse/idea开发工具
使用idea开发需在pom.xml导入tomcat插件即可,使用eclipse开发,需安装tomcat,并部署至tomcat容器中,运行项目工程。
我使用的是eclipse
如果是idea加上
修改配置文件settings.properties,配置自己的Document Server服务器地址
运行项目以后出现下图界面表示运行成功
3.案例修改
一般打开文件或者创建文件会出现
主要是因为url或者callbackUrl路径不正确
url是打开文件地址,地址保证onlyoffice服务器可以访问到即可
callbackUrl我们可以写一个回调方法,将文件保存到自己想保存的位置,我是写了一个CallBackServlet,保存到本地硬盘,具体存到哪里可根据业务需求,也可以配置专门的文件服务器
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- PrintWriter writer = null;
- System.out.println("===saveeditedfile------------") ;
- try {
- writer = response.getWriter();
- Scanner scanner = new Scanner(request.getInputStream()).useDelimiter("\\A");
- String body = scanner.hasNext() ? scanner.next() : "";
- JSONObject jsonObj = (JSONObject) new JSONParser().parse(body);
- System.out.println("===saveeditedfile:" + jsonObj.get("status")) ;
- /*
- 0 - no document with the key identifier could be found,
- 1 - document is being edited,
- 2 - document is ready for saving,
- 3 - document saving error has occurred,
- 4 - document is closed with no changes,
- 6 - document is being edited, but the current document state is saved,
- 7 - error has occurred while force saving the document.
- * */
- if ((long) jsonObj.get("status") == 2) {
- /*
- * 当我们关闭编辑窗口后,十秒钟左右onlyoffice会将它存储的我们的编辑后的文件,,此时status = 2,通过request发给我们,我们需要做的就是接收到文件然后回写该文件。
- * */
- /*
- * 定义要与文档存储服务保存的编辑文档的链接。当状态值仅等于2或3时,存在链路。
- * */
- String downloadUri = (String) jsonObj.get("url");
- System.out.println("====文档编辑完成,现在开始保存编辑后的文档,其下载地址为:" + downloadUri);
- //解析得出文件名
- //String fileName = downloadUri.substring(downloadUri.lastIndexOf('/')+1);
- String fileName = request.getParameter("fileName");
- System.out.println("====下载的文件名:" + fileName);
-
- URL url = new URL(downloadUri);
- java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url.openConnection();
- InputStream stream = connection.getInputStream();
- //更换为实际的路径
- File savedFile = new File("F:\\DataOfHongQuanzheng\\onlyoffice_data\\app_data\\"+fileName);
- try (FileOutputStream out = new FileOutputStream(savedFile)) {
- int read;
- final byte[] bytes = new byte[1024];
- while ((read = stream.read(bytes)) != -1) {
- out.write(bytes, 0, read);
- }
- out.flush();
- }
- connection.disconnect();
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (ParseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- /*
- * status = 1,我们给onlyoffice的服务返回{"error":"0"}的信息,这样onlyoffice会认为回调接口是没问题的,这样就可以在线编辑文档了,否则的话会弹出窗口说明
- * */
- writer.write("{\"error\":0}");
- }
修改后可以正常打开文件了
关闭后如果有做修改,会自动保存
因为官网的demo无法直接运行,也有挺多网友问我要demo,我就把我改的demo放到github希望可以帮到大家
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。