vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
FTP Worskhop 
Autor: Patti0815
Datum: 24.11.03 15:26

 
Hi,

Hab mich schon lange mit etwas herumgeplagt und nie was gescheites dazu gefunden ausser hier bei euch.

Mit der Anleitung aus dem Workshop hab ich es jetzt probiert.
Bis zum connecten komm ich, aber zum uploaden nicht.
Glaube das es nur ein kleiner Fehler ist.

Also mein Fehler:

Wenn ich eine Datei uploaden will, kommt eine Fehlermeldung die wie folgt aussieht:

Laufzeitfehler '2467':

In dem von Ihnen eingegebenen Ausdruck wird auf ein Objekt verwiesen, das
geschlossen ist oder nicht existiert.

Und jetzt erstmal die Zeilen der UploadFile Function über der gelben Markierung
 
      Friend Function UploadFile(ByVal LocalFile As String, _
  ByVal ServerFile As String, _
  Optional ByVal StartUploadAt As Long = 0)
 
  Dim TmpPort As Long
  Dim TmpPortStr As String
  Dim SendBuff As String
 
  ' Servermodus auf Binär stellen
  If SendCommand(OvermitBinary, CommandOk, CommandOk, _
    CommandFail) = False Then Exit Function
 
NewUniquePort:
  ' Port öffnen (für das Senden der Daten)
   TmpPort = 0
 
  ' Neuen Port ermitteln
  Call GetNewPort(TmpPort, TmpPortStr)
 
  ' Neuen Port öffnen
  With Downsock
    .Close
    .LocalPort = TmpPort
    .Listen
  End With
 
  ' neu geöffneten Port dem Server mitteilen
  If SendCommand(SetPort & TmpPortStr, CommandOk, CommandOk, _
    CommandFail, 0&, "Neuer Port geöffnet") = False Then
    Exit Function
  End If
 
  ' Upload-Startposition setzen
  SendCommand ResumeTransfere & StartUploadAt, _
    ResumingSupportet, CommandOk, CommandNotImplemented
 
  ' Progressbar einstellen
  ' siehe Workshop-Projekt
 
  ' lokale Datei öffnen
  FFile = FreeFile
  Open LocalFile For Binary As FFile
  Seek #FFile, StartUploadAt + 1
 
  ' Anfrage an Server senden
  TAbort = False
  TotalBytes = LOF(FFile)
  OvermittedBytes = StartUploadAt
  If SendCommand(Upload & ServerFile, TransferStart, _
    TransferStart, PermissionDenied) = False Then
 
    ' Zugriff verweigert (auf der Server-Seite)
  '  ...
    Exit Function
  End If
 
  ' Warten bis die Datenleitung verbunden ist
  Dim TimeOut As Long
  TimeOut = GetTickCount + 1000 * ConnectTimeOut
  Do
    DoEvents
So und jetzt die Zeilen die in Visual Basic in der UploadFile Function gelb markiert sind:

 
        Loop Until Downsock.State = sckConnected Or _
       TimeOut < GetTickCount / 1000
Und jetzt die Zeilen der UploadFile Function unter der gelben Markierung:
 
  ' TimeOut überschritten!
  If Downsock.State <> sckConnected Then Exit Function
 
  ' Alle Daten senden und warten bis die Daten den
  ' Server erreichen
  PacketSend = True
  Do
    DoEvents
 
    ' Wenn vorheriges Päckchen beim Server ist,
    ' neues Daten-Päckchen senden
    If PacketSend = True And _
      OvermittedBytes <> TotalBytes Then
 
      ' Puffergröße festlegen
      If TotalBytes - OvermittedBytes < SendBufferLenght Then
        SendBuff = Space(TotalBytes - OvermittedBytes)
      Else
        SendBuff = Space(SendBufferLenght)
      End If
 
      ' Übertragene Bytes aufaddieren
      OvermittedBytes = OvermittedBytes + Len(SendBuff)
 
      ' Progressbar aktualisieren
     ' ShowProgress picProgress, OvermittedBytes, 0, TotalBytes
 
      ' Daten aus der Datei lesen
      Get #FFile, , SendBuff
 
      ' Daten an den Server schicken
      If TAbort = True Then Exit Do
      PacketSend = False
      Downsock.SendData SendBuff
    End If
  Loop Until TotalBytes = OvermittedBytes And PacketSend = True
 
  ' Socket schließen
  Downsock.Close
  SendCommand "", TransferComplete, TransferComplete, -1&
 
  ' Für den nächsten Down-/Upload zurücksetzen
  OvermittedBytes = 0
  TotalBytes = 0
 
  ' Datei schließen
  If FFile <> -1 Then
    Close FFile
    FFile = -1
  End If
 
  ' Falls abgebrochen wurde
  If TAbort = True Then
    '...
  End If
 
  ' Falls die Verbindung zur Datenleitung nicht
  ' aufgebaut werden konnte, nochmals versuchen
  If LastServerCmd = DataConnectionError Then GoTo NewUniquePort
End Function
Vielleicht weiß jemand was ich machen könnte das dies funktioniert.
Bin um jede Hilfe dankbar

Mfg Patrick Hennig
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
FTP Worskhop992Patti081524.11.03 15:26
Re: FTP Worskhop397Patti081525.11.03 14:02
Re: FTP Worskhop353Patti081526.11.03 16:32
Re: FTP Worskhop335Patti081528.11.03 15:57
Re: FTP Worskhop384Davey1234(5)29.11.03 20:52
Re: FTP Worskhop361Davey1234(5)29.11.03 20:54
Re: FTP Worskhop357Davey1234(5)29.11.03 21:03

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel