Jump to content


Photo

Upload Problem mit VB


  • Please log in to reply
2 replies to this topic

#1 Miingno

Miingno
  • Members
  • 2 posts

Posted 08 July 2009 - 11:23 AM

Wenn ich versuche mit folgendem Script eine Datei auf einem Server zu erneuern, dann bekomme ich den Fehler, dass die Datei nicht existiert da ich diese zuerst lösche. Warum wird diese aber dann nicht einfach wieder neu erstellt beim hochladen?...
An den Benutzerrechten liegt es nicht, der Benutzer dürtfe dies machen.

Danke im Voraus.
Und falls es eine einfachere Methode mit Ersetzen anstelle von Löschen/neu Hochladen gibt, nehme ich auch diese ;P

Hier das Script, einige Daten aus Sicherheitsgründen mit xx geschrieben:
Dim LocalFile

Set fso = CreateObject("Scripting.FileSystemObject")
Set LocalFile = fso.GetFile("M:\test\mju.php")

LocalFileSize = LocalFile.Size
WScript.Echo "File size." & vbCrLf & LocalFileSize


Dim obj
Set obj = CreateObject("sfFTPLib.FTPConnectionSTA")

WScript.Echo "Object created." & vbCrLf

Dim result

' Settings
obj.Host = "xx.xx.ch"
obj.Username = "xx"
obj.Password = "xx"
obj.Port = 21
obj.Protocol = 0 ' ftpProtocolNormal
obj.Passive = 1
obj.MLST = 1
' Enable logging
obj.LogFile = "C:\Connect.log"
obj.Timeout = 30
obj.HidePassword = True
'obj.DataTransferType = "Ascii"

WScript.Echo "Port = " & obj.Port & vbCrLf
'WScript.Echo "CertName = " & obj.CertName & vbCrLf & result

' Connect
result = obj.Connect()
WScript.Echo "Connected" & vbCrLf

'change folder
result = obj.ChangeDirectory("./test/")
WScript.Echo "Changed Directory" & vbCrLf & result

'delete old
result = obj.DeleteFile("mju.php")
WScript.Echo "Deleted old file" & vbCrLf & result

'opload file
result =  obj.UploadFile("M:\test\mju.php","mju.php",LocalFileSize,0)
WScript.Echo "Uploaded File" & vbCrLf & result

' Disconnect
result = obj.Disconnect()
WScript.Echo "Disconnected" & vbCrLf & result

Log sieht so aus:
[20090708 11:05:54] SmartFTP FTP Library v1.5.19.0
[20090708 11:05:54] Resolving host name "xx.xx.ch"
[20090708 11:05:54] Connecting to xx.xxx.xx.xxx Port: 21
[20090708 11:05:54] Connected to xx.xx.ch.
[20090708 11:05:54] 220 FTP Server ready.
[20090708 11:05:54] USER xx
[20090708 11:05:54] 331 Password required for xx
[20090708 11:05:54] PASS (hidden)
[20090708 11:05:54] 230 User xx logged in
[20090708 11:05:54] SYST
[20090708 11:05:54] 215 UNIX Type: L8
[20090708 11:05:54] Detected Server Type: UNIX
[20090708 11:05:54] RTT: 20.108 ms
[20090708 11:05:54] FEAT
[20090708 11:05:54] 211-Features:
[20090708 11:05:54] MDTM
[20090708 11:05:54] REST STREAM
[20090708 11:05:54] SIZE
[20090708 11:05:55] 211 End
[20090708 11:05:55] PWD
[20090708 11:05:55] 257 "/" is the current directory
[20090708 11:05:55] CWD ./test/
[20090708 11:05:55] 250 CWD command successful
[20090708 11:05:55] PWD
[20090708 11:05:55] 257 "/test" is the current directory
[20090708 11:05:56] DELE mju.php
[20090708 11:05:56] 250 DELE command successful
[20090708 11:05:56] TYPE I
[20090708 11:05:56] 200 Type set to I
[20090708 11:05:56] PASV
[20090708 11:05:56] 227 Entering Passive Mode (xx.xxx.xx.xxx,199,69).
[20090708 11:05:56] Opening data connection to xx.xxx.xx.xxx Port: 51013
[20090708 11:05:56] REST 34
[20090708 11:05:56] 350 Restarting at 34. Send STORE or RETRIEVE to initiate transfer
[20090708 11:05:56] STOR mju.php
[20090708 11:05:56] 550 mju.php: No such file or directory
[20090708 11:05:57] QUIT
[20090708 11:05:57] 221 Goodbye.
[20090708 11:05:57] Client closed the connection.

#2 mb

mb

    Developer

  • Administrators
  • 11520 posts
  • Gender:
    Male
  • Location:
    Worldwide

Posted 08 July 2009 - 02:52 PM

Folgender code ist falsch:
result = obj.UploadFile("M:\test\mju.php","mju.php",LocalFileSize,0)

Du willst ja nicht von position LocalFileSize den transfer resumen sondern vom Anfang:
result = obj.UploadFile("M:\test\mju.php","mju.php",0,0)

Gruss
Mat

#3 Miingno

Miingno
  • Members
  • 2 posts

Posted 08 July 2009 - 03:11 PM

Was so ein paar Nullen ausmachen ^^;
Jetzt funktioniert alles einwandfrei. Danke!

Hatte den Code vor einiger Zeit von einem Kollegen so übernommen. Da ich aber nicht mehr die einzelnen Parameter genau wusste, dachte ich es sei so in Ordnung XD
Auf jeden Fall, danke nochmal!




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users