| |
Fragen und Antworten zur vbarchiv.dllFTP Upload | | | Autor: larsbehrmann | Datum: 30.01.06 16:29 |
| Hallo zusammen, nach langer Zeit bastele ich wieder an meinem Programm. Ich habe mir die neueste vbarchiv.dll runtergeladen und habe ein wenig mit den ftp funktionen rumgespielt. Leider stürzt mein programm immer ab, wenn ich folgende funktion aufrufe:Public Function FTPupload()
pSocket = ftpConnect("ftp.larsbehrmann.de", "benutzername", "passwort")
If pSocket > 0 Then
ftpSetBinary (pSocket)
ftpPutFile pSocket, 0, "c:\meldung\status.htm", "status.htm"
End If
ftpQuit (pSocket)
End Function Was mache ich falsch?
Ciao Lars
If it's stupid but it works, it isn't stupid. | |
Re: FTP Upload | | | Autor: larsbehrmann | Datum: 02.02.06 09:51 |
| Keine Ahnung, wie bekomme ich das raus?
If it's stupid but it works, it isn't stupid. | |
Re: FTP Upload | | | Autor: larsbehrmann | Datum: 02.02.06 16:59 |
| Alles klar ich bastel mal rum.
If it's stupid but it works, it isn't stupid. | |
Re: FTP Upload | | | Autor: panamaman | Datum: 13.02.06 02:12 |
| Hi.
Also ich habe das gleiche Problem...bei mir krepiert auch VB, wenn
'Verbindung zum FTP-Server
' aufbauen*********************************************************************
' ****************
FtpServer = ftpConnect("xxxxxxxxxxx", "xxxxxxxxxxxx", "xxxxxxxxxxxx")
If FtpServer = 1 Then
FRM_MAIN.L_Stat.Caption = "Zum FTP-Server verbunden!"
FRM_MAIN.L_Stat.Caption = ftpGetLastStatusMsg
Else
FRM_MAIN.L_Stat.Caption = "Verbindung zum FTP-Server fehlgeschlagen!"
FRM_MAIN.L_Stat.Caption = ftpGetLastStatusMsg
End If
'Call ftpSetBinary(FtpServer)
'******************************************************************************
' *****************************************
'Daten
' senden***********************************************************************
' ************************************
Set gRCS = gDTB.OpenRecordset("SELECT * FROM updatedata WHERE UpdateDate =" & _
"DateValue('" & Date & "');")
With gRCS
Do While Not .EOF
LpaF = .Fields("OriginalFile").Value
FtpF = .Fields("UpdatePath").Value & "/" & .Fields("FileName").Value VB diese Zeile bearbeitet...
FileSend = FtpPutFile(CLng(FtpServer), 0, CStr(FtpF), CStr(LpaF)) FRM_MAIN.L_Stat.Caption = ftpGetLastStatusMsg
.MoveNext
Loop
End With
'******************************************************************************
' *****************************************
Call ftpQuit(FtpServer)
FRM_MAIN.L_Stat.Caption = ftpGetLastStatusMsg Ich hoffe es weiss jemand Rat...
Achso, wieso gibt es im DOKU-Ordner der .dll eigentlich nix über die FTP-Geschichte? | |
Re: FTP Upload | | | Autor: panamaman | Datum: 13.02.06 02:52 |
| Also, nach längerem testen kann ich folgendes sagen :
- Download, changedir usw... geht problemlos.
- Beim FtpPutFile krepiert VB immernoch
Ich verzweifele noch...
also, nacht. | |
Re: FTP Upload | | | Autor: larsbehrmann | Datum: 13.02.06 13:27 |
| Hallo zusammen, ich bin auch noch am besteln, und irgendwie klappt das alles noch nicht so wie ich mir das vorstelle...
If it's stupid but it works, it isn't stupid. | |
Re: FTP Upload | | | Autor: larsbehrmann | Datum: 14.02.06 10:06 |
| Ja, nun funktionierts bei mir! DANKE!
If it's stupid but it works, it isn't stupid. | |
Re: FTP Upload | | | Autor: panamaman | Datum: 14.02.06 11:58 |
| JO!!!!
Super, geht...vielen dank nochmal...
also bis dann... | |
Re: FTP Upload | | | Autor: panamaman | Datum: 14.02.06 12:14 |
| Achso, kann ich irgendwie die aktuell übertragenen bytes und die zu übertragenen bytes ausgeben? Das währe noch toll...
mfg
panama | |
Re: FTP Upload | | | Autor: panamaman | Datum: 14.02.06 22:12 |
| Sorry, für die dumme Frage, wie soll ich das tun?
Ich hab vor den ftpupload befehl ein DoEvents gesetzt, damit das
Formular nicht hängt...
Wie kann ich denn den hStatus übergeben? | |
Re: FTP Upload | | | Autor: panamaman | Datum: 14.02.06 22:19 |
| UPPS, sorry hat sich erledigt....mist das man hier keine threats löschen kann... | |
Re: FTP Upload - Code-Sample (mit Fehlerbehandlung) | | | Autor: Erdmännchen | Datum: 17.03.06 13:08 |
| Bei der Kommunikation wird's immer lästig, wenn sie nicht kommuniziert. Darum habe ich gerne eine Möglichkeit zur genauen Eingrenzung des Fehlers. Damit der Nächste einfach Copy/Paste machen kann, lad ich mein 'FTPUpload' rauf...
Hinweise:
- die MsgBox's hab ich natürlich als Eintrag in ein Jounal ausgeführt
- wird die Fehlerbehandlung weggelassen, kann sich der Upload vollständig verklemmen (z.B. Verbindungsabbruch vor 'ftpSetAscii' führt dann zum Hängen von 'ftpPutFile')
Ermännchen
Public Declare Function ftpConnect Lib "vbarchiv.dll" _
(sServer As String, _
sUser As String, _
sPW As String) As Long
Public Declare Function ftpPutFile Lib "vbarchiv.dll" _
(ByVal hSocket As Long, _
ByRef sServer As String, _
ByVal hStatus As Long, _
remoteFile As String, _
localFile As String) As Long
Public Declare Function ftpGetLastStatusCode Lib "vbarchiv.dll" _
() As Long
Public Declare Sub ftpSetAscii Lib "vbarchiv.dll" _
(ByVal hSocket As Long)
Public Declare Sub ftpQuit Lib "vbarchiv.dll" _
(ByVal hSocket As Long)
Sub FTPUpload()
'Lädt eine Text-Datei auf den Server. /public/... ist der Pfad ab dem Root
Dim pSocket As Long
Dim res As Long
Const cMyServer = "ftp.guarda-cuolms.ch"
pSocket = ftpConnect(cMyServer, "benutzername", "passwort")
If pSocket > 0 Then
'OK: Verbindung geöffnet
ftpSetAscii (pSocket)
res = ftpGetLastStatusCode()
If res = 200 Then
'OK
res = ftpPutFile(pSocket, cMyServer, 0, "/public/index.html", _
"C:\MyProject\index.html")
If res=1 Then
'OK
ftpQuit (pSocket)
res = ftpGetLastStatusCode()
If res = 221 Then
'OK
ElseIf res = 0 Then
'nach ca. 45s
MsgBox "Problem bei FTP-Upload (ftpQuit): " & pSocket & "(keine" & _
"Verbindung zu Server)"
Else
MsgBox "Problem bei FTP-Upload (ftpQuit)" & pSocket & "(unbekanntes" & _
"Problem)"
End If
ElseIf res = 0 Then
'nach ca. 120s
MsgBox "Problem bei FTP-Upload (ftpPutFile): " & res & "(keine Verbindung" & _
"zu Server)"
Else
MsgBox "Problem bei FTP-Upload (ftpPutFile): " & res & "(unbekanntes" & _
"Problem)"
End If
ElseIf res = 0 Then
'Timeout nach 60s
MsgBox "Problem bei FTP-Upload (ftpSetAscii): " & res & "(keine Verbindung" & _
"zu Server)"
Else
MsgBox "Problem bei FTP-Upload (ftpSetAscii): " & res & "(unbekanntes" & _
"Problem)"
End If
ElseIf pSocket = -2147483648# Then
'nach ca 15s
MsgBox "Problem bei FTP-Upload FTP-Upload (ftpConnect): " & pSocket & "(keine" & _
"Verbindung zu Server)"
Else
MsgBox "Problem bei FTP-Upload (ftpConnect)" & pSocket & "(unbekanntes" & _
"Problem)"
End If
End Sub | |
Re: FTP Upload | | | Autor: larsbehrmann | Datum: 05.04.06 21:42 |
| Hallo zusammen.
Ich habe nun folgenden Code nur leider gibt er mir nach dem Connect (oder auch nicht) einen pSocket Wert von -213irgendwas.
Dies bedeutet doch, dass er sich nicht connected, oder?
Hier mein Code:
Public Function FTPupload_htm()
pSocket = ftpConnect("feuerwehr-barsbuettel.de", "user", "passwort")
If pSocket > 0 Then
ftpSetBinary (pSocket)
ftpChangeDir pSocket, "public_html/status"
ftpPutFile pSocket, "feuerwehr-barsbuettel.de", 0, "status.htm", _
"c:\meldung\status.htm"
End If
ftpQuit (pSocket)
End Function If it's stupid but it works, it isn't stupid. | |
Re: FTP Upload | | | Autor: larsbehrmann | Datum: 06.04.06 07:47 |
| Und wie kriege ich raus was genau falsch läuf`t? Wenn ich nämlich einen standard FTP Client benutze, mit GENAU diesen Werten, dann klappts. Kann es sein, dass mein Server entwas nicht unterstützt?
If it's stupid but it works, it isn't stupid. | |
Re: FTP Upload | | | Autor: larsbehrmann | Datum: 06.04.06 14:12 |
| In der zweiten Message Box steht gar nix drin.Public Function FTPupload_htm()
pSocket = ftpConnect("feuerwehr-barsbuettel.de", "user", "pass")
MsgBox pSocket
MsgBox ftpCurDir(pSocket)
If pSocket > 0 Then
ftpSetBinary (pSocket)
ftpChangeDir pSocket, "public_html/status"
ftpPutFile pSocket, "feuerwehr-barsbuettel.de", 0, "status.htm", _
"c:\meldung\status.htm"
End If
ftpQuit (pSocket)
End Function Irgendwie ist das komisch. Kann es denn sein, dass mein ISP vielleicht nur verschlüsselt was haben will oder ein anderes anmeldeformat benutzt werden muss oder so?
If it's stupid but it works, it isn't stupid. | |
Re: FTP Upload | | | Autor: larsbehrmann | Datum: 06.04.06 14:20 |
| Verdammte Hacke ich hab's! Das Passwort hat am Anfang einen GROSSBUCHSTABEN. Dieser wurde nicht korrekt zum Server übertragen und dadurch gab es kein Connect. Ich habe nun einen Benutzer angelegt wo kein Grossbuchstabe vorkommt und auch nicht beim Passwort, ausserdem habe ich den user direkt in das richtige Verzeichnis geroutet und so brauch ich auch kein changeDir machen!
If it's stupid but it works, it isn't stupid. | |
Re: FTP Upload | | | Autor: Erdmännchen | Datum: 06.04.06 16:37 |
| Damit ich mir langes Testen für die Zukunft ersparen kann:
- hast Du das Passwort im Code falsch gesetzt
oder
- hat vbArchive.dll Deinen Grosbuchstaben im PW in einen Kleinbuchstaben gewandelt
Einen Fehler auf Serverseite kann ich mir irgendwie nur schlecht vorstellen.
Meine Erfahrung mit PW für FTP in vbArchive.DLL besagen, dass
- Kleinbuchstaben
- Ziffern
- Sonderzeichen (zumindest das von mir verwendete)
funktionieren. Mein PW enthält keine Grossbuchstaben.
Gruss Erdmännchen | |
Re: FTP Upload - Code-Sample (mit Fehlerbehandlung) | | | Autor: MSeuling | Datum: 03.09.06 12:17 |
| Hallo, verwende Ihren Code um einige Dateien per FTP hochzuladen. Hab das ganze Script auf dem Notebook (Win XP) entwickelt und es funzt auch.
Jetzt will ich, dass ein anderer PC mit "W2K Server" den Job erledigt.
Ruf ich jetzt das Script auf dem W2K Rechner auf bekomme ich:
>> Laufzeitfehler '6' << Überlauf - klick ich dann auf Debuggen ist folgende Zeile markiert:
ElseIf pSocket = -2147483648# Then
dachte zuerst ich hab die vbarchiv.dll nicht, oder in den falschen Ordner kopiert, aber die ist da - hab sie jetzt mal in den WINNT und den System32 Ordner kopiert...
Das einzige was noch anders ist als das OS ist die Ländereinstellung für das Dezimaltrennzeichen (brauche hier einen . statt ein , da sonst dass umbauen meiner Tabellen nicht ganz richtig funktioniert.
Aber dass hab ich schon nochmal umgestellt - leider ohne positiven effekt, hab auch mal die Zahl verkleinert, aber dass hat auch nix gebracht.
Kann es sein, dass die FTP Verbindung einfach nicht zustande kommt - hab irgendwas über Groß-/Kleinschreibungsproblematik in Zusammenhang mit der vbarchiv.dll gelesen...
Wäre nett, wenn Sie mir irgendwie weiterhelfen könnten...
Gruß MarkusS | |
Re: FTP Upload - Code-Sample (mit Fehlerbehandlung) | | | Autor: MSeuling | Datum: 03.09.06 20:27 |
| Denk mal Du meinst dass hier:
Dim pSocket As Long
würde mich aber sehr wundern, wenn es daran liegt - es funktioniert ja so wie es ist auf nem XP Rechner...
Die Rechner hängen übrigens hinter dem gleichen Router - gehen auf die gleiche weiße online usw....
Bin echt ratlos -theoretisch müsste es ja an meinem W2K Server liegen, hab allerdings keine Idee was ich daran verstellen soll...
Starte den PC jetzt mal neu, denk dass hab ich nach dem kopieren der vbarchiv.dll noch nicht gemacht...
Gruß MS | |
Re: FTP Upload - Code-Sample (mit Fehlerbehandlung) | | | Autor: MSeuling | Datum: 05.09.06 21:05 |
| Hallo,
hier also...
die Deklaration:
'FTP Upload
Public Declare Function ftpConnect Lib "vbarchiv.dll" _
(sServer As String, _
sUser As String, _
sPW As String) As Long
Public Declare Function ftpPutFile Lib "vbarchiv.dll" _
(ByVal hSocket As Long, _
ByRef sServer As String, _
ByVal hStatus As Long, _
remoteFile As String, _
localFile As String) As Long
Public Declare Function ftpGetLastStatusCode Lib "vbarchiv.dll" _
() As Long
Public Declare Sub ftpSetAscii Lib "vbarchiv.dll" _
(ByVal hSocket As Long)
Public Declare Sub ftpQuit Lib "vbarchiv.dll" _
(ByVal hSocket As Long)
Und hier der eigentliche Code:
Sub FTPUpload()
'Lädt eine Text-Datei auf den Server. /public/... ist der Pfad ab dem Root
Dim pSocket As Long
Dim res As Long
Const cMyServer = "xyz.de"
pSocket = ftpConnect(cMyServer, "Benutzer", "Paßwort")
If pSocket > 0 Then
'OK: Verbindung geöffnet
ftpSetAscii (pSocket)
res = ftpGetLastStatusCode()
If res = 200 Then
'OK
res = ftpPutFile(pSocket, cMyServer, 0, "/html/catalog/wip/categories.csv", "G:\MS - MultimediaService\Wippermann\Artikeldatenbank\_Aktuell\To Import\categories.csv")
res = ftpPutFile(pSocket, cMyServer, 0, "/html/catalog/wip/categories_description.csv", "G:\MS - MultimediaService\Wippermann\Artikeldatenbank\_Aktuell\To Import\categories_description.csv")
res = ftpPutFile(pSocket, cMyServer, 0, "/html/catalog/wip/products_description.csv", "G:\MS - MultimediaService\Wippermann\Artikeldatenbank\_Aktuell\To Import\products_description.csv")
res = ftpPutFile(pSocket, cMyServer, 0, "/html/catalog/wip/products.csv", "G:\MS - MultimediaService\Wippermann\Artikeldatenbank\_Aktuell\To Import\products.csv")
res = ftpPutFile(pSocket, cMyServer, 0, "/html/catalog/wip/products_to_cat.csv", "G:\MS - MultimediaService\Wippermann\Artikeldatenbank\_Aktuell\To Import\products_to_cat.csv")
If res = 1 Then
'OK
ftpQuit (pSocket)
res = ftpGetLastStatusCode()
If res = 221 Then
'OK
ElseIf res = 0 Then
'nach ca. 45s
MsgBox "Problem bei FTP-Upload (ftpQuit): " & pSocket & "(keine Verbindung zu Server)"
Else
MsgBox "Problem bei FTP-Upload (ftpQuit)" & pSocket & "(unbekanntes Problem)"
End If
ElseIf res = 0 Then
'nach ca. 120s
MsgBox "Problem bei FTP-Upload (ftpPutFile): " & res & "(keine Verbindung zu Server)"
Else
MsgBox "Problem bei FTP-Upload (ftpPutFile): " & res & "(unbekanntes Problem)"
End If
ElseIf res = 0 Then
'Timeout nach 60s
MsgBox "Problem bei FTP-Upload (ftpSetAscii): " & res & "(keine Verbindung zu Server)"
Else
MsgBox "Problem bei FTP-Upload (ftpSetAscii): " & res & "(unbekanntes Problem)"
End If
ElseIf pSocket = -2147483648# Then
'nach ca 15s
MsgBox "Problem bei FTP-Upload FTP-Upload (ftpConnect): " & pSocket & "(keine Verbindung zu Server)"
Else
MsgBox "Problem bei FTP-Upload (ftpConnect)" & pSocket & "(unbekanntes Problem)"
End If
Set wshshell = CreateObject("WScript.Shell")
wshshell.Run "www.ms-multimediastore.de/catalog/wip/auto.php"
End Sub
In der Zeile: ElseIf pSocket = -2147483648# Then bleibt er dann stehen. Hab den Wert schon hin und her geändert, ohne irgendeine Auswirkung...
mfg Markus | |
Re: FTP Upload - Code-Sample (mit Fehlerbehandlung) | | | Autor: Erdmännchen | Datum: 06.09.06 10:27 |
| Hallo Markus
Das Problem von 'larsbehrmann' mit der Gross-Kleinschreibung war, dass er im Passwort einen Grossbuchstaben hatte. Irgendwie wurde dieser nicht richtig zum Server übertragen. Er hat dann eine UserID und ein Passwort mit ausschliesslich Kleinbuchstaben angelegt. Das Problem könnte also bei UserID oder PW gelegen haben!
Ich selbst habe ein Passwort mit Grossbuchstabe und Sonderzeichen und bei mir funktioniert das. Meine Usernamen umfassen aber ausschliesslich Kleinbuchstaben.
Dies ist eine Überlegung die ich mir vom HTML zu eigen gemacht habe: wo UNIX-Server im Spiel sein können, werden für URL's ausschliesslich Kleinbuchstaben und '-' (im Gegensat zu '_' und ' ' bei unterstrichenen Links eindeutig und sichtbar) verwendet. Das hat sich sehr bewährt!
Um Probleme auszuschliessen, würde ich für die Testphase auf dem Server einen User anlegen, bei dem UserID und Passwort ausschliesslich aus Kleinbuchstaben bestehen.
Erdmännchen | |
Re: FTP Upload - Code-Sample (mit Fehlerbehandlung) | | | Autor: MSeuling | Datum: 06.09.06 15:28 |
| Hi,
keine Ahnung! Wie, oder wo kann ich dass denn sehen?
Wenn ich auf Debuggen klicke kommmt dass was ich Dir geschickt habe...
mfg Markus | |
Re: FTP Upload - Code-Sample (mit Fehlerbehandlung) | | | Autor: MSeuling | Datum: 06.09.06 15:31 |
| Hm,
also bei mir ist es so, dass sowohl der User als auch das PW aus kleinen Buchstaben und Ziffern bestehen!
Kann da leider auch nicht so einfach abhilfe beschaffen, denn wenn ich einen neuen FTP User anlege wird ein Benutzername (der dann auch wieder aus kleinbuchstaben und Ziffern besteht) vorgegeben.
Kann mir irgendwie auch nicht vorstellen, dass es daran liegt außer W2K (hier ist das Problem) überträgt die Daten irgendwie anders als XP.
Denn daß ist quasi der einzige Unterschied, ansonsten - gleiches Office, gleiche Datei, gleiche vbarchive.dll Version usw....
?????
mfg Markus | |
Re: FTP Upload - Code-Sample (mit Fehlerbehandlung) | | | Autor: MSeuling | Datum: 06.09.06 23:40 |
| Hallo,
hab die neue vbarchiv.dll getestet und folgende Fehlermeldung bekommen:
http://www.ms-multimediastore.de/catalog/wip/ftp-fehler.jpg
so wie ich dass sehe ist da dass erwähnte -1, also kommt die FTP Verbindung gar nicht erst zustande...
Hab jetzt noch versucht, was passiert, wenn ich vor dem Start des Macros einfach IE öffne, weil ich dachte dass Excel evtl. einfach nicht weiß wie es sich verbinden soll (PC hängt hinter Router mit integrierter Firewall, auf dem Rechner läuft keine Personal Firewall...), aber dass Ergebnis war leider das gleiche...
Noch Ideen???
Gruß Markus | |
Re: FTP Upload - Code-Sample (mit Fehlerbehandlung) | | | Autor: MSeuling | Datum: 07.09.06 23:54 |
| Martoeng schrieb:
Zitat: | | Hast Du auch mal die LastStatusMsg ausgelesen?
-> Wie muß ich dass machen?
Der Router mit Firewall wird vermutlich die Verbindung nicht
erlauben.
| |
-> Mit FTP Progi geht's allerdings ohne jegliche Prob's... Oder ist dass für's Macro verhalten unerheblich?
Gruß Markus | |
Re: FTP Upload - Code-Sample (mit Fehlerbehandlung) | | | Autor: MSeuling | Datum: 08.09.06 01:25 |
| Sorry versteh jetzt nicht ganz was Du meinst? Habe doch den Quelltext gepostet, oder meinst Du solange das Script läuft?
Gruß und danke für die Geduld
MarkusS | |
Re: FTP Upload - Code-Sample (mit Fehlerbehandlung) | | | Autor: MSeuling | Datum: 11.09.06 15:39 |
| Hallo,
damit: ...Du mit ftpGetLastStatusMsg auslesen,...
kann ich nicht viel anfangen! Wo soll ich dass eingeben? Hab es auf der Kommandozeile versucht, aber die lässt sich - so lange das Excel Script läuft - nicht richtig initaialisiern... Oder hab ich dass ganze irgendwie total falsch verstanden???
Gruß MS | |
Re: FTP Upload - Code-Sample (mit Fehlerbehandlung) | | | Autor: MSeuling | Datum: 19.09.06 16:57 |
| Hi,
merkwürdig jetzt geht es mit einmal!
Dass versteh wer will!
Hab nur gemerkt, dass der Server manche Websites nicht öffnen kann, und auch die Netzwerkeinstellungen nicht aufmacht, hab also neu gestartet (allerdings nicht dass erste mal, seit dem ganzen Problem...) - und ich konnte die o.g. Dinge wieder normal ausführen.
Hab dann mal mein Script ausführen lassen und jetzt geht es auf einmal... Hoffe nur, dass ich nicht "einmalig..."
Gruß und danke nochmal an alle, die geholfen haben...
MS | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|