Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.upstream.builtinDrivers.fileSystem.upstreamMultipleFiles
on upstreamMultipleFiles (fileslist, adrspec, adrresponse) {
<<Changes
<<5/15/02; 11:23:10 AM by JES
<<If the file's mime-type does not begin with "text/", use file.writeWholeFile to write the file to disk, instead of file.writeTextFile.
<<1/24/02; 7:49:12 PM by DW
<<Created.
local (pc = file.getpathchar ());
local (folder = adrspec^.folder);
if not (folder endswith pc) {
folder = folder + pc};
msg ("Upstreaming " + sizeof (fileslist) + " files to " + folder + "...");
local (urllist = {});
for adrfile in fileslist {
try {
local (f = nameof (adrfile^));
local (relativePath = adrfile^.relativePath);
local (filetext = radio.upstream.getUpstreamText (f, @relativePath));
local (fdest = folder + string.replaceAll (relativePath, "/", pc));
file.surefilepath (fdest);
if radio.webserver.getFileMimeType (fdest) beginsWith "text/" {
file.writetextfile (fdest, filetext)}
else { //not a text file
file.writewholefile (fdest, filetext)};
adrfile^.upstream.flError = false;
adrfile^.upstream.ctUploads++;
local (url = adrspec^.url + relativePath);
adrfile^.upstream.url = url;
urllist [0] = url}
else {
adrfile^.upstream.flError = true;
urllist [0] = ""}};
new (tabletype, adrresponse);
adrresponse^.urllist = urllist;
adrresponse^.flerror = false;
adrresponse^.message = "";
msg ("")}
<<bundle //test code
<<upstreamMultipleFiles (scratchpad.streams [1].files, scratchpad.streams [1].adrspec, @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.