• NX二次开发-NX客户机与服务器FTP上传下载文件


    版本:

    客户端NX11+VS2013

    服务器windowsServer2012R2

    1.部署服务器FTP:

    在桌面左下角点击“服务器管理器”。

     点击“添加角色和功能”。

    下一步

     下一步

    下一步

     勾选“web服务器(IIS)”

     点击“添加功能”。

     下一步。

     勾上“FTP服务器”。

     点击“安装”。

     安装完成后点击“关闭”。

     回到“服务器管理器”,点击“工具”-“IIS管理器”。

     在“网站”上点击鼠标右键,选择“添加FTP站点”。

    设置站点名称和物理路径

    下一步,绑定本机IP地址,设置端口号

     填上身份验证和授权信息。

    完成

     

     2.客户端程序项目代码

    NX11+VS2013
    
    #include <afxinet.h>
    #include <afxwin.h>
    #include <uf.h>
    #include <uf_ui.h>
    
    
    UF_initialize();
    
    //客户端与服务器FTP上传下载
    CInternetSession *m_pInetsession;
    CFtpConnection *m_pFtpConnection;
    m_pInetsession = new CInternetSession(AfxGetAppName(), 1, PRE_CONFIG_INTERNET_ACCESS);
    try
    {
        m_pFtpConnection = m_pInetsession->GetFtpConnection("192.168.1.133", "administrator", "Edgewin123", 125);
    
        //uc1601("连接成功", 1);
    
        //单选菜单对话框
        char sPromptStr[] = "单选菜单对话框";
        int iDefault = 0;//表示没有默认选项,OK按钮始终保持不激活状态
        char asOptions[][38] = { "上传文件到服务器", "从服务器上下载文件", "删除服务器上的文件" };
        int iNumOfOtions = 3;//最多包含14个菜单选项
        int value = uc1603(sPromptStr, iDefault, asOptions, iNumOfOtions);
        if (value == 5)
        {
            //上传文件
            BOOL bRetVal = m_pFtpConnection->PutFile("D:\1.prt", "1.prt", FTP_TRANSFER_TYPE_BINARY, 1);
            if (bRetVal == false)
            {
                uc1601("上传失败", 1);
            }
            else
            {
                uc1601("上传成功", 1);
            }
        }
        else if (value == 6)
        {
            //下载文件
            BOOL bRetVal1 = m_pFtpConnection->GetFile("1.prt", "D:\1\1.prt", false, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, 1);
            if (bRetVal1 == false)
            {
                uc1601("下载失败", 1);
            }
            else
            {
                uc1601("下载成功", 1);
            }
        }
        else if (value == 7)
        {
            //删除服务器上的文件
            BOOL bRetVal2 = m_pFtpConnection->Remove("1.prt");
            if (bRetVal2 == false)
            {
                uc1601("删除失败", 1);
            }
            else
            {
                uc1601("删除成功", 1);
            }
        }
    
    }
    catch (CInternetException *pEx)
    {
        TCHAR szError[1024];
        if (pEx->GetErrorMessage(szError, 1024))
        {
            uc1601(szError, 1);
        }
        else
        {
            uc1601("There was an exception", 1);
        }
        pEx->Delete();
        m_pFtpConnection = NULL;
        return;
    }
    
    UF_terminate();
    
    Caesar卢尚宇
    2020年10月23日

    3.演示

    Caesar卢尚宇

    2020年10月23日

  • 相关阅读:
    Oracle 10g 改机器名后监听不能启动 解决方案 TNS12541 TNS12545
    14.3.1 IMPDP 命令行选项
    14.3.2 调用IMPDP —— 导入表空间
    三十岁之前不必在乎的事
    正则表达式
    GridLayout and GridData
    非UI线程更新界面
    整理用Java实现数字转化成字符串左边自动补零方法
    stackLayout
    读写properties文件
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/13865995.html
Copyright © 2020-2023  润新知