File upload vbs脚本只上载文件名,不上载内部数据

File upload vbs脚本只上载文件名,不上载内部数据,file-upload,vbscript,upload,ftp,filezilla,File Upload,Vbscript,Upload,Ftp,Filezilla,此脚本的问题在于,它在运行脚本时显示一条未知错误消息 我在ftp中通过echo方法调用了这个函数,即“filezilla”。 当它登录到服务器时,一切正常,检查路径,打开数据写入通道。还是不知道问题出在哪里 Function FTPUpload(sSite, sUsername, sPassword, sLocalFile, sRemotePath) 'This script is provided under the Creative Commons license located '

此脚本的问题在于,它在运行脚本时显示一条未知错误消息

我在ftp中通过echo方法调用了这个函数,即“filezilla”。 当它登录到服务器时,一切正常,检查路径,打开数据写入通道。还是不知道问题出在哪里

Function FTPUpload(sSite, sUsername, sPassword, sLocalFile, sRemotePath)
  'This script is provided under the Creative Commons license located
  'at http://creativecommons.org/licenses/by-nc/2.5/ . It may not
  'be used for commercial purposes with out the expressed written consent
  'of NateRice.com

  Const OpenAsDefault = -2
  Const FailIfNotExist = 0
  Const ForReading = 1
  Const ForWriting = 2

  Set oFTPScriptFSO = CreateObject("Scripting.FileSystemObject")
  Set oFTPScriptShell = CreateObject("WScript.Shell")

  sRemotePath = Trim(sRemotePath)
  sLocalFile = Trim(sLocalFile)

  '----------Path Checks---------
  'Here we willcheck the path, if it contains
  'spaces then we need to add quotes to ensure
  'it parses correctly.
  If InStr(sRemotePath, " ") > 0 Then
    If Left(sRemotePath, 1) <> """" And Right(sRemotePath, 1) <> """" Then
      sRemotePath = """" & sRemotePath & """"
    End If
  End If

  If InStr(sLocalFile, " ") > 0 Then
    If Left(sLocalFile, 1) <> """" And Right(sLocalFile, 1) <> """" Then
      sLocalFile = """" & sLocalFile & """"
    End If
  End If

  'Check to ensure that a remote path was
  'passed. If it's blank then pass a "\"
  If Len(sRemotePath) = 0 Then
    'Please note that no premptive checking of the
    'remote path is done. If it does not exist for some
    'reason. Unexpected results may occur.
    sRemotePath = "\"
  End If

  'Check the local path and file to ensure
  'that either the a file that exists was
  'passed or a wildcard was passed.
  If InStr(sLocalFile, "*") Then
    If InStr(sLocalFile, " ") Then
      FTPUpload = "Error: Wildcard uploads do not work if the path contains a " & _
      "space." & vbCRLF
      FTPUpload = FTPUpload & "This is a limitation of the Microsoft FTP client."
      Exit Function
    End If
  ElseIf Len(sLocalFile) = 0 Or Not oFTPScriptFSO.FileExists(sLocalFile) Then
    'nothing to upload
    FTPUpload = "Error: File Not Found."
    Exit Function
  End If
  '--------END Path Checks---------

  'build input file for ftp command
  sFTPScript = sFTPScript & "USER " & sUsername & vbCRLF
  sFTPScript = sFTPScript & sPassword & vbCRLF
  sFTPScript = sFTPScript & "cd " & sRemotePath & vbCRLF
  sFTPScript = sFTPScript & "binary" & vbCRLF
  sFTPScript = sFTPScript & "prompt n" & vbCRLF
  sFTPScript = sFTPScript & "put " & sLocalFile & vbCRLF
  sFTPScript = sFTPScript & "quit" & vbCRLF & "quit" & vbCRLF & "quit" & vbCRLF


  sFTPTemp = oFTPScriptShell.ExpandEnvironmentStrings("%TEMP%")
  sFTPTempFile = sFTPTemp & "\" & oFTPScriptFSO.GetTempName
  sFTPResults = sFTPTemp & "\" & oFTPScriptFSO.GetTempName

  'Write the input file for the ftp command
  'to a temporary file.
  Set fFTPScript = oFTPScriptFSO.CreateTextFile(sFTPTempFile, True)
  fFTPScript.WriteLine(sFTPScript)
  fFTPScript.Close
  Set fFTPScript = Nothing  

  oFTPScriptShell.Run "%comspec% /c FTP -n -s:" & sFTPTempFile & " " & sSite & _
  " > " & sFTPResults, 0, TRUE

  Wscript.Sleep 1000

  'Check results of transfer.
  Set fFTPResults = oFTPScriptFSO.OpenTextFile(sFTPResults, ForReading, _
  FailIfNotExist, OpenAsDefault)
  sResults = fFTPResults.ReadAll
  fFTPResults.Close

  oFTPScriptFSO.DeleteFile(sFTPTempFile)
  oFTPScriptFSO.DeleteFile (sFTPResults)

  If InStr(sResults, "226 Transfer complete.") > 0 Then
    FTPUpload = True
  ElseIf InStr(sResults, "File not found") > 0 Then
    FTPUpload = "Error: File Not Found"
  ElseIf InStr(sResults, "cannot log in.") > 0 Then
    FTPUpload = "Error: Login Failed."
  Else
    FTPUpload = "Error: Unknown."
  End If

  Set oFTPScriptFSO = Nothing
  Set oFTPScriptShell = Nothing
  WScript.Echo "Process Completed (" & Now & ")"
End Function
函数FTPUpload(sSite、sUsername、sPassword、sLocalFile、sRemotePath)
'此脚本是根据位于的Creative Commons许可证提供的
”“在http://creativecommons.org/licenses/by-nc/2.5/ . 可能不会
“未经明确书面同意,不得用于商业目的
“来自NateRice.com
常量OpenAsDefault=-2
常数FailIfNotExist=0
常数ForReading=1
写入常数=2
pscript的集合fso=CreateObject(“Scripting.FileSystemObject”)
脚本Shell的集合=CreateObject(“WScript.Shell”)
sRemotePath=修剪(sRemotePath)
sLocalFile=修剪(sLocalFile)
'------------路径检查---------
'这里我们将检查路径,如果它包含
'然后我们需要添加引号以确保
“它解析正确。
如果InStr(sRemotePath,“”>0,则
如果左(sRemotePath,1)“”,右(sRemotePath,1)“”,则
sRemotePath=“”&sRemotePath&“”
如果结束
如果结束
如果InStr(sLocalFile,“”>0,则
如果左(sLocalFile,1)”,右(sLocalFile,1)”,则
sLocalFile=“”&sLocalFile&“”
如果结束
如果结束
'检查以确保远程路径是正确的
”“通过了。如果为空,则传递一个“\”
如果Len(sRemotePath)=0,则
'请注意,没有预先检查
'远程路径已完成。如果它在某些情况下不存在
”“原因。可能会出现意外的结果。
sRemotePath=“\”
如果结束
'检查本地路径和文件以确保
'存在的文件的
'传递或传递了通配符。
如果InStr(sLocalFile,“*”),则
如果InStr(sLocalFile,“”),则
FTPUpload=“错误:如果路径包含”&,则通配符上载不起作用_
“空格。”&vbCRLF
FTPUpload=FTPUpload&“这是Microsoft FTP客户端的一个限制。”
退出功能
如果结束
ElseIf Len(sLocalFile)=0或不存在oFTPScriptFSO.FileExists(sLocalFile),则
“没有要上传的内容
FTPUpload=“错误:找不到文件。”
退出功能
如果结束
'----------结束路径检查---------
'为ftp命令生成输入文件
sFTPScript=sFTPScript&“用户”&sUsername&vbCRLF
sFTPScript=sFTPScript&sPassword&vbCRLF
sFTPScript=sFTPScript&“cd”&sRemotePath&vbCRLF
sFTPScript=sFTPScript&“二进制”&vbCRLF
sFTPScript=sFTPScript&“提示符n”和vbCRLF
sFTPScript=sFTPScript&“put”&sLocalFile&vbCRLF
sFTPScript=sFTPScript&“退出”&vbCRLF&“退出”&vbCRLF&“退出”&vbCRLF
sFTPTemp=oFTPScriptShell.ExpandEnvironmentStrings(“%TEMP%”)
sFTPTempFile=sFTPTemp&“\”oFTPScriptFSO.GetTempName
sftpscriptfso.GetTempName的sftptelts=sFTPTemp&“\”&oFTPScriptFSO.GetTempName
'写入ftp命令的输入文件
'到一个临时文件。
Set-fFTPScript=oFTPScriptFSO.CreateTextFile(sFTPTempFile,True)
fFTPScript.WriteLine(sFTPScript)
fFTPScript.Close
Set-fFTPScript=Nothing
oFTPScriptShell。运行“%comspec%/c FTP-n-s:&sFTPTempFile&”&sSite&_
“>”&sFTPResults,0,TRUE
Wscript.Sleep 1000
'检查转移结果。
设置fFTPResults=oFTPScriptFSO.OpenTextFile(sFTPResults,ForReading_
FailIfNotExist,OpenAsDefault)
sResults=fFTPResults.ReadAll
fFTPResults.关闭
oFTPScriptFSO.DeleteFile(sFTPTempFile)
oFTPScriptFSO.DeleteFile(sFTPResults)
如果InStr(sResults,“226传输完成”)>0,则
FTPUpload=True
ElseIf InStr(sResults,“未找到文件”)>0然后
FTPUpload=“错误:找不到文件”
ElseIf InStr(sResults,“无法登录”)>0
FTPUpload=“错误:登录失败。”
其他的
FTPUpload=“错误:未知。”
如果结束
pscriptfso的集合=无
脚本shell集=无
WScript.Echo“进程已完成(&Now&)”
端函数