schwegennagel
Cadet 4th Year
- Registriert
- Feb. 2005
- Beiträge
- 79
Hallo,
ich möchte von einem lokalen Verzeichnis eine Datei auf einen Server hochladen. Bekomme aber als Fehler von GetLastError
Die Methode Connect funktioniert einwandfrei. Ich habe den von Connect und getLastConnection zurückgegebenen Zeiger schon für andere Methoden verwendet. Sieht jemand in diesem Codestück einen Fehler?
Hier Connect.cpp:
Kennt niemand eine Antwort? Komme im Moment echt nicht weiter
Habe es auch schon mit verschiendenen dwFlags probiert.
Morgen,
das Problem hat sich erledigt. Wenn ich Putfile benutze funktioniert es.
testuptload.cpp
Connect.cpp
ich möchte von einem lokalen Verzeichnis eine Datei auf einen Server hochladen. Bekomme aber als Fehler von GetLastError
Und es wird auch nichts hochgeladen.6 The handle is invalid.
Code:
Connect();
connection_pointer=Connect::getLastConnection();
FtpPutFile(connection_pointer, _T("C:/CPlusPlus/TxtTransfer/newbu.txt"), _T("automatic/get_bu/newbu.txt"), FTP_TRANSFER_TYPE_BINARY, 0);
cout << GetLastError();
Die Methode Connect funktioniert einwandfrei. Ich habe den von Connect und getLastConnection zurückgegebenen Zeiger schon für andere Methoden verwendet. Sieht jemand in diesem Codestück einen Fehler?
Hier Connect.cpp:
Code:
CFtpConnection* Connect::connection_pointer=NULL;
CInternetSession session((_T("My FTP Session")),1, INTERNET_OPEN_TYPE_PROXY ,
(_T( "proxy")), NULL, 0);
Connect::Connect(void)
{
//Objekt session wird erzeugt
//Zeiger auf CFtpConnection
CFtpConnection *connection;
//Objekt der Klasse read_serverlist wird erzeugt
read_serverlist LeseListe;
LPCTSTR pstrServer = _T("proxy");
INTERNET_PORT port = 21;
BOOL bPassive = TRUE;
try
{
//FTP-Verbindung wird eröffnet,Methode GetFtpConnection wird auf session angewandt,
//connection wird auf zurückgegeben Zeiger gesetzt
if(connection = session.GetFtpConnection(pstrServer, LeseListe.servername, LeseListe.password, port, bPassive))
{
cout << "Verbindung wurde aufgebaut\n";
connection_pointer=connection;
}
}
//Fehleroutine
catch (CInternetException* pEx)
{
cout<<"FEHLER : "<<GetLastError()<<endl;
TCHAR sz[1024];
pEx->GetErrorMessage(sz, 1024);
printf_s("ERROR! %S\n", sz);
pEx->Delete();
}
}
CFtpConnection * Connect::getLastConnection()
{
return connection_pointer;
}
Kennt niemand eine Antwort? Komme im Moment echt nicht weiter
Code:
testupload::testupload(void)
{
Connect();
CFtpConnection* connection_pointer;
connection_pointer=Connect::getLastConnection();
if(connection_pointer->SetCurrentDirectory(_T("automatic/get_bu")))
{
cout<<"Verzeichnis wurde mit Erfolg! gewechselt\n";
bool a;
a=FtpPutFile(connection_pointer, _T("C:/CPlusPlus/TxtTransfer/newbu.txt"), _T("automatic/get_bu/newbu.txt"), INTERNET_FLAG_TRANSFER_BINARY, 0);
cout << GetLastError() << a;
}
else
{
DWORD dwInfo = 0;
TCHAR puffer[250] = _T("");
DWORD dwSize = sizeof(puffer) / sizeof(TCHAR);
if( !InternetGetLastResponseInfo(&dwInfo, puffer, &dwSize) )
{
cout << GetLastError();
cout << "Aufruf InternetGetLastResponseInfo nicht erfolgreich";
}
//Fehlerbehandlung falls InternetGetLastResponseInfo nicht aufgerufen werden konnte
else
{
wcout << puffer;
cout << "Aufruf InternetGetLastResponseInfo erfolgreich";
}
}
}
Morgen,
das Problem hat sich erledigt. Wenn ich Putfile benutze funktioniert es.
testuptload.cpp
Code:
testupload::testupload(void)
{
Connect();
CFtpConnection* connection_pointer;
connection_pointer=Connect::getLastConnection();
/*if(connection_pointer->SetCurrentDirectory(_T("automatic/get_bu")))
{
cout<<"Verzeichnis wurde mit Erfolg! gewechselt\n";*/
bool a;
a=connection_pointer->PutFile( _T("C:/CPlusPlus/TxtTransfer/newbu.txt"), _T("automatic/get_bu/newbu.txt"), FTP_TRANSFER_TYPE_BINARY, NULL);
cout << GetLastError() << "\n" <<a;
if (a==1)
{
cout << "Upload sollte funktioniert haben";
}
else
{
DWORD dwInfo = 0;
TCHAR puffer[250] = _T("");
DWORD dwSize = sizeof(puffer) / sizeof(TCHAR);
if( !InternetGetLastResponseInfo(&dwInfo, puffer, &dwSize) )
{
cout << GetLastError();
cout << "Aufruf InternetGetLastResponseInfo nicht erfolgreich";
}
//Fehlerbehandlung falls InternetGetLastResponseInfo nicht aufgerufen werden konnte
else
{
wcout << puffer;
cout << "Aufruf InternetGetLastResponseInfo erfolgreich";
}
}
Connect.cpp
Code:
LPCTSTR pstrServer = _T("proxy");
INTERNET_PORT port = 21;
BOOL bPassive = TRUE;
try
{
//FTP-Verbindung wird eröffnet,Methode GetFtpConnection wird auf session angewandt,
//connection wird auf zurückgegeben Zeiger gesetzt
if(connection = session.GetFtpConnection(pstrServer, LeseListe.servername, LeseListe.password, port, bPassive))
{
cout << "Verbindung wurde aufgebaut\n";
connection_pointer=connection;
}
}
//Fehleroutine
catch (CInternetException* pEx)
{
cout<<"FEHLER : "<<GetLastError()<<endl;
TCHAR sz[1024];
pEx->GetErrorMessage(sz, 1024);
printf_s("ERROR! %S\n", sz);
pEx->Delete();
}
}
CFtpConnection * Connect::getLastConnection()
{
return connection_pointer;
}
Zuletzt bearbeitet von einem Moderator:
(3-fachpost)