Einfachste Möglichkeit für Dateiupload



  • Hallo alle miteinander,
    ich suche die einfachste Möglichkeit eine Datei auf einen Webserver via Ftp hoch zu laden. Ich habe schon die Suchfunktion benutzt. Aber irgendwie scheint die nicht zu funktionieren. Zumindest kommt kein Ergebnis, wenn ich nach "upload" suche.
    Ich muss das für ein Projekt in der Uni wissen. Früher hatte ich nur mit dem C++ Builder gearbeitet. Da gabs in der Toolbox ein Opjekt Ftp-Client oder so. Damit war das super simpel. Gibt es so etwas auch in Visual Studio 2008? Ich habe gesucht aber nichts gefunden!

    Danke schonmal für die Hilfe! 🙂





  • Puhhh wie kann man dann WinApi in Visual C++ einbauen?
    Ne Andere leichtere Möglichkeit gibt es nicht?



  • KecDieHaie schrieb:

    Puhhh wie kann man dann WinApi in Visual C++ einbauen?

    Wo liegt das Problem?

    KecDieHaie schrieb:

    Ne Andere leichtere Möglichkeit gibt es nicht?

    https://www.google.at/search?q=ftp+library+c%2B%2B 😉



  • Ok, ich versuch es mal:
    So habe ich die Funktion "InternetConnect()" gefüllt:

    HINTERNET InternetConnect(hInternet,"ftp-*****","21","kecdiehaie","*******",1,0,0);
    

    Dann habe ich noch die windows.h und Wininet.h included

    Jetzt spuckt der aber folgende fehler aus:

    1>c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(96) : error C2872: 'IServiceProvider': Mehrdeutiges Symbol
    1>        kann 'c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(53) sein: System::IServiceProvider IServiceProvider'
    1>        oder "c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider"
    1>c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(96) : error C3699: "*": Diese Referenzierung kann nicht für den Typ "IServiceProvider" verwendet werden.
    1>        Der Compiler ersetzt "*" durch ^", um die Analyse fortzusetzen.
    1>c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(103) : error C2371: 'IServiceProvider': Neudefinition; unterschiedliche Basistypen
    1>        c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(53): Siehe Deklaration von 'IServiceProvider'
    1>c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(120) : error C2872: 'IServiceProvider': Mehrdeutiges Symbol
    1>        kann 'c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(103) sein: IServiceProvider'
    1>        oder "c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider"
    1>c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(235) : error C2872: 'IServiceProvider': Mehrdeutiges Symbol
    1>        kann 'c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(103) sein: IServiceProvider'
    1>        oder "c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider"
    1>c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(242) : error C2872: 'IServiceProvider': Mehrdeutiges Symbol
    1>        kann 'c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(103) sein: IServiceProvider'
    1>        oder "c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider"
    1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\urlmon.h(5854) : error C2872: 'IServiceProvider': Mehrdeutiges Symbol
    1>        kann 'c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(103) sein: IServiceProvider'
    1>        oder "c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider"
    1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\urlmon.h(5856) : error C2872: 'IServiceProvider': Mehrdeutiges Symbol
    1>        kann 'c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(103) sein: IServiceProvider'
    1>        oder "c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider"
    1>.\zusatzk.cpp(8) : error C2065: 'hInternet': nichtdeklarierter Bezeichner
    1>.\zusatzk.cpp(8) : error C2078: Zu viele Initialisierungen
    


  • Wenn man schon bei MFC ist, warum benutz man dann nicht die entsprechenden Klassen die dafür vorgesehen sind also CFtpConnection,CInternetSession? Beispiel zur Nutzung findest du hier unter http://msdn.microsoft.com/de-de/library/272ce2aa(v=vs.90).aspx



  • Hallo,

    PseudoCode!:

    bool CMyFtp::PutFtpIP(CString server,CString user,CString pwd, CString &ip)
    {
    	CFtpConnection* m_pFtpConnection(0);
    	CInternetFile *m_pInetFile(0);
    	CMySock ms; 
    
        for(char i(0),*pIpStr(0),Online(false); (pIpStr = ms.GetIpState(0,i,Online)); i++)
    	  if(Online)ip=pIpStr;
    
    	if(ip.IsEmpty())//we are not online
    	  return false;
    
    	if(!(m_pFtpConnection = CInternetSession::GetFtpConnection(server,user,pwd)))
    	  return false;
    
    	if(!(m_pInetFile = m_pFtpConnection->OpenFile("connect.ip",GENERIC_WRITE,FTP_TRANSFER_TYPE_BINARY,1)) ) 	
    	{
    	 delete m_pFtpConnection;
    	 return false;
    	}
    
        m_pInetFile->Write(ip.GetBuffer(0),ip.GetLength()+1);//put with zero
    	m_pInetFile->Close();
    
    	delete m_pInetFile;
        delete m_pFtpConnection;
    
        return true;
    }
    

Log in to reply