`

开源OA开发教程(O2OA):Ftp文件上传方法使用说明

阅读更多

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、打开服务管理平台

服务管理平台.png

2、创建接口写上相关代码

创建接口.png

FTP上传.png

/*
* 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用户操作手册-环境部署及搭建应用.zip

    总的来说,这份手册旨在帮助开发者和管理员熟悉O2OA的部署过程,掌握应用的搭建方法,以便更好地利用O2OA提升工作效率,实现企业的信息化建设。通过深入学习和实践,用户可以熟练掌握O2OA的全部功能,定制出符合自身...

    Java实现FTP文件上传和下载

    总结,Java实现FTP文件上传和下载涉及的主要知识点包括:FTP协议基础,Apache Commons Net库的使用,FTPClient对象的配置与操作,以及相关的文件流处理和错误处理机制。理解并熟练掌握这些内容,将有助于你在实际...

    基于ThinkPHP开发的PHP开源OA办公系统

    `smeoa-master`是基于ThinkPHP开发的一个开源OA办公系统实例,包含了完整的源代码,企业可以在此基础上进行二次开发,满足特定业务需求。项目提供了诸如人事管理、财务管理、合同管理、客户关系管理等常见模块,为...

    SpringBoot JAVA 开源OA协同办公系统

    本项目JDK8x64+SpringBoot+MyBatis+Redis+Druid+Beetl+Shrio的框架组合,自研工作流引擎,支持可视化表单设计与流程设计。支技分布式部署。... 正式版演示地址:http://oa.cyunsoft.com 账户:admin 密码:123456

    PHPOA协同OA办公软件开源版源码 PHPOACollaborationOA.rar

    2、PHPOA使用敏捷MVC开发框架,支持多种模块分布式开发,统一布局,界面简洁不失严肃。其功能包含有个人办公、工作流、公文、人力资源、行政办公、档案、项目管理、知识库、在线交流、CRM系统等,含盖60多个功能点...

    基于thinkphp的开源oa系统

    【标题】"基于thinkphp的开源oa系统"指的是一个使用ThinkPHP框架开发的开放源代码办公自动化(Office Automation,简称OA)系统。ThinkPHP是中国较早的PHP开发框架之一,以其简洁、高效的特性受到广大开发者喜爱。这...

    开源OA系统 - 码云GVP-Java开源

    5. **文件名称列表**:“o2oa-develop”可能表示的是该开源OA系统的开发版本源代码,通常包含了项目的源文件、配置文件、测试用例等,开发者可以通过这些资料深入了解系统的架构、功能实现以及进行二次开发。...

    [信息办公]PHProjekt v5.2 (国外开源OA系统)_phprojekt.rar

    【描述】:“[信息办公]PHProjekt v5.2 (国外开源OA系统)_phprojekt”简要说明了这个压缩包的内容,即PHProjekt的5.2版本,它是一个国外开发的开源办公自动化(OA)系统。开源意味着源代码是公开的,允许用户自由...

    php开源oa办公系统

    PHP开源OA办公系统则是基于PHP编程语言开发的,具有源代码开放、可自由修改和扩展的特点。本文将深入探讨PHP开源OA办公系统的核心概念、功能特性以及在学校环境中的应用。 一、PHP开源OA办公系统的概述 PHP是一种...

    C# 大型OA 开源

    由从事六年以上OA及工作流开发与实施的团队设计开发,该工作流平台已应用于众多大型企事业单位。拥有全浏览器兼容的可视化流程设计器、表单设计器、基于角色的权限管理等先进设计理念,是您开发 OA、CRM、HR 等企...

    开源OA企业信息化平台O2OA iOS端源码.zip

    1. **说明.txt** - 这个文件可能包含了关于如何构建、安装和使用O2OA iOS客户端的指南,以及关于项目背景、许可证信息、贡献者列表和版本更新等内容的详细说明。 2. **o2oa-ios_master.zip** - 这个文件可能是O2OA ...

    开源OA2.0 审批流程 PHP源码

    【开源OA2.0 审批流程 PHP源码】是一个基于ThinkPHP框架开发的企业级办公自动化系统,其核心是提供一套高效、灵活的审批流程管理功能,并且集成了企业微信应用,使得工作流程与企业通信无缝对接。这个系统旨在提高...

    开源OA协同办公系统源码,集成Flowable流程引擎 可拖拽创建个性表单

    开源OA协同办公系统,集成Flowable流程引擎 可拖拽创建个性表单。基于RuoYi-VUE版本开发。 1、使用RuoYi-Vue的基础上开发。 2、集成flowable,并与系统用户角色进行绑定,可非常方便的设置任务的办理人与办理角色...

    使用前端插件上传文件到ftp服务器

    本教程将深入探讨如何使用前端插件实现文件上传到FTP(File Transfer Protocol)服务器的过程,这是一个广泛用于文件传输的标准协议。我们将讨论关键概念、步骤以及可能涉及的技术。 ### FTP简介 FTP是一种在...

    O2OA开源OA系统 v8.2.3.zip

    《O2OA开源OA系统 v8.2.3——企业数字化转型的重要推手》 O2OA开源OA系统,全称为OpenOffice Automation,是专为企事业单位打造的一款高效、灵活的办公自动化解决方案。该系统的核心目标是提升组织内部的工作效率,...

    o2oa-mini-program:开源OA企业信息化平台O2OA的小程序

    O2OA是基于J2EE架构,集成了移动办公,智能办公,支持私有化部署,自适应负载能力的,能够节省成本的企业软件开发成本的基于AGPL协议开放源代码的企业信息化系统需求定制开发解决方案方案,对外提供专业的开发运维等...

    PHP开源OA办公系统

    PHP开源OA办公系统是一种基于PHP编程语言开发的开放式办公自动化解决方案,专为中小型企业设计,旨在提高工作效率,优化工作流程,实现信息化管理。这个系统以其易用性、稳定性和灵活性著称,允许用户根据自己的需求...

    O2OA开源OA系统 v6.0.2-源码.zip

    O2OA(Open Office Automation)是一款基于Java技术开发的开源办公自动化系统,它提供了完整的企事业单位信息化解决方案,包括工作流、表单设计、报表分析、文档管理、项目协作等功能。v6.0.2是该系统的其中一个稳定...

    开源OA系统 - 码云GVP-Java开源oa-企业OA办公平台-企业OA-协同办公OA-流程平台OA-O2OA-OA,支持国产麒麟操作系统和国产数据库(达梦、人大金仓),政务OA,军工信息化OA

    开源OA系统 - 码云GVP|Java开源oa|企业OA办公平台|企业OA|协同办公OA|流程平台OA|O2OA|OA,支持国产麒麟操作系统和国产数据库(达梦、人大金仓),政务OA,军工信息化OA

    开源OA系统

    【开源OA系统】是一种基于开放源代码的办公自动化(Office Automation,简称OA)软件系统,旨在提高企业或组织的工作效率,实现信息化管理。开源OA系统的最大特点在于其源代码对公众开放,允许用户自由地使用、修改...

Global site tag (gtag.js) - Google Analytics