On 6/20/13 1:08 PM, Devin Asay wrote:
Hi folks,
Maybe I'm missing something. I want to get progress information from a rather
large download from an HTTP server. This is what I'm doing:
command downloadFile
set the cursor to watch
put "http://server.com/data/myfile.gz" into tRemote_GZ
put "/path/to/file/pwr_complete.gz" into tLocal_GZ
put url tRemote_GZ into url ("binfile:" & tLocal_GZ)
end downloadFile
on urlProgress pURL, pStatus, pMessage, pBytesTotal
put "Downloading " & pURL & cr & "Status: " & pStatus && pMessage && "of
TotalBytes: " & pBytesTotal \
into fld "prog"
end urlProgress
Nothing ever shows up in field "prog", but the download eventually succeeds. I
can see the file on my hard drive after it has downloaded.
Am I doing something wrong? I'm on OS X 10.7.x and LC 6.0.2.
It looks like the urlProgress message is only for mobile. On desktop,
here's the core of what I use:
put sURL & tFile & ".gz" into tURL
set cursor to watch
libUrlSetStatusCallback "checkStatus", (the long id of me)
set the thumbpos of sb "progressbar" to 0
put tData into url tURL
get the result
if it <> "" then answer "Could not upload file:" && it
libUrlSetStatusCallback empty -- turn it off
You turn on the status callback before the download and turn it off
afterward. My example uploads, but it works the same going the other
direction. Once the status callback is set, you'll get periodic messages
with whatever callback you assigned (in this case, the message will be
"checkStatus") and the message will be sent to the location you assigned
(in my case, the long ID of the script object.) So you need a handler to
catch the callback:
on checkStatus tURL,tStatus
put tStatus into fld "statusFld" -- might be all you need
switch
case tStatus contains "loading"
set the endvalue of sb "progressbar" to item 3 of tStatus
set the thumbpos of sb "progressbar" to item 2 of tStatus
break
case tStatus contains "uploaded"
set the thumbpos of sb "progressbar" to the endvalue of sb
"progressbar"
break
default
set the thumbpos of sb "progressbar" to 0
end switch
end checkStatus
Mine updates a progress bar, but you could just report the progress in a
text field.
--
Jacqueline Landman Gay | jac...@hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode