Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 431
  • Last Modified:

how do I copy a file from my c drive to an FTP site using vbscript

I have tried this but it doesnt work.

Dim fso
set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile "C:\test.txt", "ftp:\\ftp.mysite.com\test.bak"
set fso = nothing
msgbox "Done!"
0
nabuilder
Asked:
nabuilder
  • 2
  • 2
1 Solution
 
Lee W, MVPTechnology and Business Process AdvisorCommented:
ftp doesn't work that way.  Not sure how you'd do it in vbscript.  Could write a script for you in batch.  Probably be simpler than vbscript.
0
 
jltariCommented:
I agree with leew. Using ftp.exe included in Windows is an easy way to do this simple task.
You can create a script file to feed it whichever FTP commands you wish.
If you really want to use VBscript, you can create this script file with it, then call ftp.exe from there.
0
 
neteducationCommented:
On Error Resume Next

Dim MySite
Dim myPath

Set MySite= CreateObject("CuteFTPPro.TEConnection")

MySite.Host = "ftp://usrname:pwd@ftpsite.com/data/"
MySite.Connect

If (Cbool(MySite.IsConnected)) Then    
   
   MySite.LocalFolder = "F:\exports"

   myPath = "F:\exports\data.txt"
   MySite.Upload myPath
   
   MySite.Disconnect
   MySite.Close
   Set MySite = nothing

End If

You'll have to have cuteFTP tough..
0
 
neteducationCommented:
or how about this one ?

<%@ Language=VBScript %>
<%
' FTP via ASP without using 3rd-party components
' Ben Meghreblian 15th Jan 2002
' benmeg at benmeg dot com / http://benmeg.com
'
' This script assumes the file to be FTP'ed is in the same directory as this script.
' It should be obvious how to change this (*hint* change the lcd line).
' You may specify a wildcard in ftp_files_to_put (e.g. *.txt).

' NB: You need to have C:\winnt\system32\wshom.ocx registered to use the WSCRIPT.SHELL object.
' It is registered by default, but is sometimes removed for security reasons (no kidding!).
' You will also need cmd.exe in the path, which again is there, unless the box is locked down.
' Check with your web host/resident sysadmin if in doubt.
Dim objFSO, objTextFile, oScript, oScriptNet, oFileSys, oFile, strCMD, strTempFile, strCommandResult
Dim ftp_address, ftp_username, ftp_password, ftp_physical_path, ftp_files_to_put

' Edit these variables to match your specifications
ftp_address          = "ftp.server.com"
ftp_username         = "username"
ftp_password         = "password"
ftp_remote_directory = "subdirectory" ' Leave blank if uploading to root directory
ftp_files_to_put     = "file.txt"

On Error Resume Next
Set oScript = Server.CreateObject("WSCRIPT.SHELL")
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Build our ftp-commands file
Set objTextFile = objFSO.CreateTextFile(Server.MapPath("test.ftp"))
objTextFile.WriteLine "lcd " & Server.MapPath(".")
objTextFile.WriteLine "open " & ftp_address
objTextFile.WriteLine ftp_username
objTextFile.WriteLine ftp_password

' Check to see if we need to issue a 'cd' command
If ftp_remote_directory <> "" Then
   objTextFile.WriteLine "cd " & ftp_remote_directory
End If

objTextFile.WriteLine "prompt"

' If the file(s) is/are binary (i.e. .jpg, .mdb, etc..), uncomment the following line' objTextFile.WriteLine "binary"
' If there are multiple files to put, we need to use the command 'mput', instead of 'put'
If Instr(1, ftp_files_to_put, "*",1) Then
   objTextFile.WriteLine "mput " & ftp_files_to_put
Else
   objTextFile.WriteLine "put " & ftp_files_to_put
End If
objTextFile.WriteLine "bye"
objTextFile.Close
Set objTextFile = Nothing
' Use cmd.exe to run ftp.exe, parsing our newly created command file
strCMD = "ftp.exe -s:" & Server.MapPath("test.ftp")
strTempFile = "C:\" & oFileSys.GetTempName( )
' Pipe output from cmd.exe to a temporary file (Not :| Steve)
Call oScript.Run ("cmd.exe /c " & strCMD & " > " & strTempFile, 0, True)
Set oFile = oFileSys.OpenTextFile (strTempFile, 1, False, 0)

On Error Resume Next
' Grab output from temporary file
strCommandResult = Server.HTMLEncode( oFile.ReadAll )
oFile.Close
' Delete the temporary & ftp-command files
Call oFileSys.DeleteFile( strTempFile, True )
Call objFSO.DeleteFile( Server.MapPath("test.ftp"), True )
Set oFileSys = Nothing
Set objFSO = Nothing
' Print result of FTP session to screen
Response.Write( Replace( strCommandResult, vbCrLf, "<br>", 1, -1, 1) )
%>
0
 
Lee W, MVPTechnology and Business Process AdvisorCommented:
In batch, that script would be so much simpler:

----------------------------------------
Set ftpAddress=ftp.server.com
Set ftpUsername=username
Set ftpPassword=password
REM  Leave following line blank if uploading to root directory
Set ftpRemoteDir=/subdirectory/path
Set ftpFile=file.txt
Set FileIsTextOnly=Y

echo lcd > ftp.scr
echo open %ftpAddress% >>ftp.scr
echo %ftpusername% >>ftp.scr
echo %ftppassword%>>ftp.scr
If "%ftpRemoteDir%" NEQ "" echo cd %ftpRemoteDir% >> ftp.scr
echo prompt >> ftp.scr
If /i "%FileIsTextOnly%" == "Y" (
   echo asc >> ftp.scr
) Else (
   echo bin >> ftp.scr
)
if "%ftpfile%" == "*" (
   echo mput %filetoput% >> ftp.scr
) Else (
   echo put %filetoput% >> ftp.scr
)
echo bye >> ftp.scr
ftp -s:ftp.scrftp.scr.log
start notepad ftp.scr.log
----------------------------------------
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now