FTP上传功能因不是平台自带功能,所以需要进行额外的java开发。当把jar包打包后,需要放入到O2目录:o2server\custom\jars。
重启服务器后生效!
一、自定义包DocumentManager.java
package com.z.custom; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.http.HttpServletRequest; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.vfs2.FileObject; import org.apache.commons.vfs2.FileSystemException; import org.apache.commons.vfs2.FileSystemManager; import org.apache.commons.vfs2.VFS; public class DocumentManager { private static HttpServletRequest request; private static FileSystemManager fsManager = null; static { try { fsManager = VFS.getManager(); } catch (FileSystemException e) { System.out.println(e.getMessage()); } } public static byte[] readFileToByte(String filePath, String encoding) throws IOException { if (StringUtils.isEmpty(filePath)) { throw new IOException("File '" + filePath + "' is empty."); } FileObject fileObj = null; InputStream in = null; try { fileObj = fsManager.resolveFile(filePath); if (fileObj.exists()) { if (org.apache.commons.vfs2.FileType.FOLDER.equals(fileObj.getType())) { throw new IOException("File '" + filePath + "' exists but is a directory"); } else { in = fileObj.getContent().getInputStream(); return IOUtils.toByteArray(in); } } else { throw new FileNotFoundException("File '" + filePath + "' does not exist"); } } catch (FileSystemException e) { throw new IOException("File '" + filePath + "' resolveFile fail."); } finally { in.close(); IOUtils.closeQuietly(in); if (fileObj != null) { fileObj.close(); } } } public static void writeByteToFile(String filePath, byte[] fileByte, String encoding) throws IOException { if (StringUtils.isEmpty(filePath)) { throw new IOException("File '" + filePath + "' is empty."); } FileObject fileObj = null; OutputStream out = null; filePath = new String(filePath.getBytes("UTF-8"),"ISO-8859-1"); try { fileObj = fsManager.resolveFile(filePath); if (!fileObj.exists()) { fileObj.createFile(); } else { if (org.apache.commons.vfs2.FileType.FOLDER.equals(fileObj.getType())) { throw new IOException("Write fail. File '" + filePath + "' exists but is a directory"); } } out = fileObj.getContent().getOutputStream(); IOUtils.write(fileByte, out); } catch (FileSystemException e) { throw new IOException("File '" + filePath + "' resolveFile fail."); } finally { out.flush(); out.close(); IOUtils.closeQuietly(out); if (fileObj != null) { fileObj.close(); } } } }
二、服务管理平台创建接口编写上传ftp接口代码
1、打开服务管理平台
2、创建接口写上相关代码
/* * resources.getEntityManagerContainer() // 实体管理容器. * resources.getContext() //上下文根. * resources.getOrganization() //组织访问接口. * requestText //请求内容. * request //请求对象. */ try{ var result = { } //FTP信息配置 var FTPhost = "172.16.92.23"; //FTP服务器IP var FTPport = 21; //FTP服务器端口 var FTPuserName = "wwx"; //FTP服务器登录用户名 var FTPpassword = "wwx"; //FTP服务器登录密码 var FTPpath = "upload"; //存放文件的目录 var filePath = "D:\\测试.docx"; //需上传的文件 var documentManager = Java.type('com.z.custom.DocumentManager'); //实例化java类 strpath = "ftp://"+FTPuserName+":"+FTPpassword+"@"+FTPhost+"/"+FTPpath+"/测试.docx"; //调用方法进行上传 documentManager.writeByteToFile(strpath, documentManager.readFileToByte(filePath,"utf-8"), "utf-8"); result.state = "NMT0001"; result.message = "成功"; }catch(e){ e.printStackTrace(); result.state = "NMT0002"; result.message = "失败"; result.data = e.name + ": " + e.message } //JSON.stringify(result); this.response.setBody(result,"application/json");
相关推荐
总的来说,这份手册旨在帮助开发者和管理员熟悉O2OA的部署过程,掌握应用的搭建方法,以便更好地利用O2OA提升工作效率,实现企业的信息化建设。通过深入学习和实践,用户可以熟练掌握O2OA的全部功能,定制出符合自身...
总结,Java实现FTP文件上传和下载涉及的主要知识点包括:FTP协议基础,Apache Commons Net库的使用,FTPClient对象的配置与操作,以及相关的文件流处理和错误处理机制。理解并熟练掌握这些内容,将有助于你在实际...
`smeoa-master`是基于ThinkPHP开发的一个开源OA办公系统实例,包含了完整的源代码,企业可以在此基础上进行二次开发,满足特定业务需求。项目提供了诸如人事管理、财务管理、合同管理、客户关系管理等常见模块,为...
本项目JDK8x64+SpringBoot+MyBatis+Redis+Druid+Beetl+Shrio的框架组合,自研工作流引擎,支持可视化表单设计与流程设计。支技分布式部署。... 正式版演示地址:http://oa.cyunsoft.com 账户:admin 密码:123456
2、PHPOA使用敏捷MVC开发框架,支持多种模块分布式开发,统一布局,界面简洁不失严肃。其功能包含有个人办公、工作流、公文、人力资源、行政办公、档案、项目管理、知识库、在线交流、CRM系统等,含盖60多个功能点...
【标题】"基于thinkphp的开源oa系统"指的是一个使用ThinkPHP框架开发的开放源代码办公自动化(Office Automation,简称OA)系统。ThinkPHP是中国较早的PHP开发框架之一,以其简洁、高效的特性受到广大开发者喜爱。这...
5. **文件名称列表**:“o2oa-develop”可能表示的是该开源OA系统的开发版本源代码,通常包含了项目的源文件、配置文件、测试用例等,开发者可以通过这些资料深入了解系统的架构、功能实现以及进行二次开发。...
【描述】:“[信息办公]PHProjekt v5.2 (国外开源OA系统)_phprojekt”简要说明了这个压缩包的内容,即PHProjekt的5.2版本,它是一个国外开发的开源办公自动化(OA)系统。开源意味着源代码是公开的,允许用户自由...
PHP开源OA办公系统则是基于PHP编程语言开发的,具有源代码开放、可自由修改和扩展的特点。本文将深入探讨PHP开源OA办公系统的核心概念、功能特性以及在学校环境中的应用。 一、PHP开源OA办公系统的概述 PHP是一种...
由从事六年以上OA及工作流开发与实施的团队设计开发,该工作流平台已应用于众多大型企事业单位。拥有全浏览器兼容的可视化流程设计器、表单设计器、基于角色的权限管理等先进设计理念,是您开发 OA、CRM、HR 等企...
1. **说明.txt** - 这个文件可能包含了关于如何构建、安装和使用O2OA iOS客户端的指南,以及关于项目背景、许可证信息、贡献者列表和版本更新等内容的详细说明。 2. **o2oa-ios_master.zip** - 这个文件可能是O2OA ...
【开源OA2.0 审批流程 PHP源码】是一个基于ThinkPHP框架开发的企业级办公自动化系统,其核心是提供一套高效、灵活的审批流程管理功能,并且集成了企业微信应用,使得工作流程与企业通信无缝对接。这个系统旨在提高...
开源OA协同办公系统,集成Flowable流程引擎 可拖拽创建个性表单。基于RuoYi-VUE版本开发。 1、使用RuoYi-Vue的基础上开发。 2、集成flowable,并与系统用户角色进行绑定,可非常方便的设置任务的办理人与办理角色...
本教程将深入探讨如何使用前端插件实现文件上传到FTP(File Transfer Protocol)服务器的过程,这是一个广泛用于文件传输的标准协议。我们将讨论关键概念、步骤以及可能涉及的技术。 ### FTP简介 FTP是一种在...
《O2OA开源OA系统 v8.2.3——企业数字化转型的重要推手》 O2OA开源OA系统,全称为OpenOffice Automation,是专为企事业单位打造的一款高效、灵活的办公自动化解决方案。该系统的核心目标是提升组织内部的工作效率,...
O2OA是基于J2EE架构,集成了移动办公,智能办公,支持私有化部署,自适应负载能力的,能够节省成本的企业软件开发成本的基于AGPL协议开放源代码的企业信息化系统需求定制开发解决方案方案,对外提供专业的开发运维等...
PHP开源OA办公系统是一种基于PHP编程语言开发的开放式办公自动化解决方案,专为中小型企业设计,旨在提高工作效率,优化工作流程,实现信息化管理。这个系统以其易用性、稳定性和灵活性著称,允许用户根据自己的需求...
O2OA(Open Office Automation)是一款基于Java技术开发的开源办公自动化系统,它提供了完整的企事业单位信息化解决方案,包括工作流、表单设计、报表分析、文档管理、项目协作等功能。v6.0.2是该系统的其中一个稳定...
开源OA系统 - 码云GVP|Java开源oa|企业OA办公平台|企业OA|协同办公OA|流程平台OA|O2OA|OA,支持国产麒麟操作系统和国产数据库(达梦、人大金仓),政务OA,军工信息化OA
【开源OA系统】是一种基于开放源代码的办公自动化(Office Automation,简称OA)软件系统,旨在提高企业或组织的工作效率,实现信息化管理。开源OA系统的最大特点在于其源代码对公众开放,允许用户自由地使用、修改...