Since my recent move to Digital Ocean for hosting, I’ve had to make a change to how I upload images for this blog. I used to create an FTP file and a batch file, but as far as I know that doesn’t support SFTP. I’m using WinSCP to transfer files manually and learned that it has a command line interface. I made a procedure called SendViaSCP to replace my SendViaFTP.
Public Sub SendViaSCP(vFname As Variant)
Dim aScript() As String
Dim i As Long
ReDim aScript(1 To 4 + UBound(vFname))
aScript(1) = "option batch abort"
aScript(2) = "option confirm off"
aScript(3) = "open sftp://username:password@000.000.000.000"
aScript(UBound(aScript)) = "exit"
For i = LBound(vFname) To UBound(vFname)
aScript(3 + i) = "put " & Dir(vFname(i)) & " /home/wordpress/public_html/blogpix/"
Next i
Open "winscpup.txt" For Output As #1
Print #1, Join(aScript, vbNewLine)
Close #1
Shell "winscpup.bat"
End Sub
The vFname arguments is a variant array that holds all of the files I selected from Application.GetOpenFileName. The aScript array holds three lines of setup, a line for each file, and an exit line.
The commands are joined together and written to a batch file and the batch file is run. It doesn’t solve the problem that Billkamm and Haines solved of having your username and password in a batch file, but I can live with it.
You might be wondering why I don’t just use the file upload functions in WordPress. What fun would that be?
Batch files sure ‘ain`t pretty sometimes, but I still use them each and every day.
If you hit a nail with a spanner does the nail go in?
Case closed.