Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.upstream.builtinDrivers.ftp.upstreamMultipleFiles
on upstreamMultipleFiles (fileslist, adrspec, adrresponse) { <<Changes <<2/1/02; 1:29:17 PM by JES <<Added support for explicit passive/active mode setting. <<12/10/01; 11:50:09 AM by DW <<Display progress in the about window. We can give more detailed feedback than the xmlStorageSystem driver can, so be it -- I want to see as much of what's happening as possible. <<12/9/01; 11:51:02 AM by DW <<Created. with adrspec^ { bundle { //set up response table new (tabletype, adrresponse); adrresponse^.urllist = {}; adrresponse^.flerror = false; adrresponse^.message = ""}; local (password = string (user.radio.prefs.passwords.[passwordname])); local (flpassive = true); if defined (mode) { if mode != "passive" { flpassive = false}}; msg ("FTP upstream driver: Opening connection."); local (adrconnection = tcp.ftp.openConnection (server, username, password, false)); local (adrfile); for adrfile in fileslist { local (f = nameof (adrfile^)); local (relativePath = adrfile^.relativePath); local (filetext = radio.upstream.getUpstreamText (f, @relativePath)); local (filepath); bundle { //set filepath filepath = path; if not (filepath endswith "/") { filepath = filepath + "/"}; filepath = filepath + relativePath}; try { msg ("FTP upstream driver: Uploading \"" + relativePath + "\"."); tcp.ftp.writefile (adrconnection, filetext, filepath, flpassive); bundle { //set the url local (s = adrspec^.url); if not (s endswith "/") { s = s + "/"}; adrfile^.upstream.url = s + relativePath; adrresponse^.urllist = adrresponse^.urllist + {adrfile^.upstream.url}}} else { adrresponse^.urllist = adrresponse^.urllist + {""}; adrresponse^.message = "One or more files failed to upstream because " + tryError; adrresponse^.flerror = true}}; msg ("FTP upstream driver: Closing connection."); tcp.ftp.closeConnection (adrconnection); msg ("")}} //clear the about window <<bundle //test code <<upstreamMultipleFiles (scratchpad.streams [1].files, @system.temp.radio.upstreamSpecCache.["C:\\Program Files\\Radio UserLand\\www\\scriptingcom\\#upstream.xml"], @scratchpad.response)
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.