ftp again
Sarah Reichelt
sarahr at genesearch.com.au
Tue Sep 7 18:22:02 EDT 2004
Hi Rand,
I think you would be much better using callbacks rather than trying to
block. In my experience, it is not always clear what is being blocked &
what isn't. Here is what I do, in roughly the same circumstance:
First, make a script local where each line contains the name of one
file to download.
Make another that contains the FTP path e.g.
"ftp://username:password@ftpserver/folder/"
(All the variables starting with "s" are script locals.)
Then call the "doNextDownload" handler ONCE ONLY.
-- loop through downloads
--
on doNextDownload
add 1 to sFileCount
if sFileCount > the number of lines in sDownloadList then
-- all the downloads are finished, do any tidying up or alerts
exit doNextDownload
end if
put line sFileCount of sDownloadList into tFile
startDownload tFile
end doNextDownload
-- start downloading file
-- getSaveFolder returns the full path to the folder where the download
file is to be saved
-- sFtpAddress is a script local that has already been set to include
the FTP username, password & path
--
on startDownload pFileName
put getSaveFolder() & pFileName into sSaveName
put sFtpAddress & pFileName into tURL
put tURL into sFtpURL
libURLDownloadToFile tURL, sSaveName, downloadDone
end startDownload
-- after download, if successful, process file
-- go on to next one regardless
--
on downloadDone pURL, pURLStatus
if pURLstatus contains "error" is false then
-- do whatever you want with the downloaded file: sSaveName
else
-- handle a download failure
end if
-- loop to doing the next download
doNextDownload
end downloadDone
I am saving the downloaded files to disk. I know you want to show them
in fields, but I'm sure you can adapt these techniques to suit, either
by downloading to a temporary file, or downloading into memory in some
way.
Cheers,
Sarah
sarahr at genesearch.com.au
http://www.troz.net/Rev/
On 8 Sep 2004, at 8:06 am, rand valentine wrote:
> Basically, what I need to do is to download up to 10 files to update
> an
> informational database -- I have files on a webpage that hold the
> information -- I have no problem uploading any number of files to this
> webpage, but I can't seem to get proper downloading to work. I was
> using a
> "put" command because it was said to be "blocking," which I assumed to
> mean
> that the script commands following the "put" command would not be
> executed
> until the file was fully downloaded. But it appears that this is not
> the
> case. So here's my question: what is the best way to do this, i.e., to
> ftp
> download a bunch of files and have them download in serial sequence?
More information about the use-livecode
mailing list