//----------------开始上传我的IP文件---------------------
CInternetSession Session(AfxGetApp()->m_pszAppName);
CFtpConnection   *pConn=NULL;
pConn=Session.GetFtpConnection(m_ftpUrl,m_user,m_pass,m_port); //链接到FTP服务器
if (pConn)
{
if (!pConn->PutFile(m_file,".\\"+m_file)) //感觉是不是这里有错? 我的txt文件跟程序是同一个目录 m_file是成员变量.就是文件名称
{
AfxMessageBox("上传失败. 失败的原因可能如下:\n1.网络没有链接?\n2.用户名或密码有误?\n3.FTP的地址有误?");
return FALSE;
}else{
AfxMessageBox("上传成功..");
pConn->Close();
delete pConn;
Session.Close();
}
}else{
AfxMessageBox("链接到FTP服务器失败.\n失败的原因可能如下:\n1.网络没有链接?\n2.用户名或密码有误?\n3.FTP的地址有误?");
return FALSE;
} return TRUE;老提示错误:AfxMessageBox("上传失败. 失败的原因可能如下:\n1.网络没有链接?\n2.用户名或密码有误?\n3.FTP的地址有误?");大大帮我看看吧.. 唉..

解决方案 »

  1.   

    CFtpConnection* GetFtpConnection(
       LPCTSTR pstrServer,
       LPCTSTR pstrUserName = NULL,
       LPCTSTR pstrPassword = NULL,
       INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
       BOOL bPassive = FALSE 
    );如果你没写第五个参数,默认是FALSE,那么你就会用Active模式上传.如果你在内网,除非你的网关有特别的设置过,否则,Active模式上传无法打开数据通道.pConn=Session.GetFtpConnection(m_ftpUrl,m_user,m_pass,m_port); 改为
    pConn=Session.GetFtpConnection(m_ftpUrl,m_user,m_pass,m_port,TRUE);试试
      

  2.   

    是不是
    if (!pConn->PutFile(m_file,".\\"+m_file)) //感觉是不是这里有错? 我的txt文件跟程序是同一个目录 m_file是成员变量.就是文件名称这里的".\\"+m_file 不对?