Hi Leute,
ich hab ein Problem beim Upload von Dateien per FTP (VB 2005).
Die 3 Dateien haben eine größe von 101 KB und zweimal 300 Byte.
Ich erhalte die Fehlermeldung: "Der RemoteServer hat einen Fehler zurückgegeben: (500) Syntaxfehler, Befehl nicht erkannt."
Das komische an der Sache ist, mal kommt der Fehler nach dem ersten Upload, mal nach dem zweiten, mal nach dem dritten und manchmal auch gar nicht.
Das erstellen des Ordners funktioniert immer ohne Probleme.
'Ordner wird erstellt
Try
Ordner = ftp.CreateDirectory(Date.Now, "Ordner")
Catch ex As Exception
MessageBox.Show("Fehler beim Upload " & ex.Message & vbCrLf & _
"Ordner konnte nicht gesendet werden", "Fehler", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
'Upload - Datei1
Try
'Datei wird hochgeladen
ftp.UploadFile("C:\Datei1", Ordner & "/Datei1")
ProgressBar1.Value = 33
Catch ex As Exception
MessageBox.Show("Fehler beim Upload " & ex.Message & vbCrLf & _
"Datei: Datei 1 konnte nicht gesendet werden", "Fehler", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
'Upload - Datei2
Try
ftp.UploadFile("C:\Datei2", Ordner & "/Datei2")
ProgressBar1.Value = 66
Catch ex As Exception
MessageBox.Show("Fehler beim Upload " & ex.Message & vbCrLf & _
"Datei: EV01 konnte nicht gesendet werden", "Fehler", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
'Upload - InfoDatei
Try
'Info-Datei wird hochgeladen
ftp.UploadFile(InfoDatei, Ordner & "/" & txtBetreff.Text & _
".txt")
'Info-Datei wird gelöscht
File.Delete(InfoDatei)
ProgressBar1.Value = 100
Catch ex As Exception
MessageBox.Show("Fehler beim Upload " & ex.Message & vbCrLf & _
"Datei: Anhang konnte nicht gesendet werden", "Fehler", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
...
Public Sub UploadFile(ByVal DateiName As String, ByVal ZielOrdner As String)
Dim request As FtpWebRequest = CType(WebRequest.Create("ftp://IP/" + _
ZielOrdner), FtpWebRequest)
request.Method = WebRequestMethods.Ftp.UploadFile
request.Credentials = New NetworkCredential(Benutzer, Password)
request.UseBinary = True
request.ContentLength = New System.IO.FileInfo(DateiName).Length
Dim sourceStream As New FileStream(DateiName, FileMode.Open, _
FileAccess.Read, FileShare.ReadWrite)
Dim requestStream As Stream = request.GetRequestStream()
Dim buffer(4095) As Byte
Dim position As Integer = 0
position = sourceStream.Read(buffer, 0, buffer.Length)
While position <> 0
requestStream.Write(buffer, 0, position)
position = sourceStream.Read(buffer, 0, buffer.Length)
End While
sourceStream.Close()
requestStream.Close()
Dim response As FtpWebResponse = CType(request.GetResponse(), _
FtpWebResponse)
response.Close()
End Sub Hat von Euch schon jemand Erfahrungen mit der FTP-Klasse gemacht? |