View Full Version : File upload and download in Lianja

2013-03-28, 20:55
The "NetworkRequest" class provides support for http, https and ftp reading and writing files and other data such as making OData requests.

It supports uploading and downloading with (optional) authenticated requests.

It can be used by any of the supported scripting languages; Visual FoxPro, PHP, Python or JavaScript.

If async is set to true, then you can subclass it and define an event handler called finished(data as character) that is passed the data received or the name of the filename containing the data when the request completes. If async is false then the operation is performed synchronously.

When using it in async mode the progressChanged(currentvalue as numeric, totalsize as numeric) event handler is called allowing you to provide progress feedback to the user during the request.

Additionally, in async mode you can call oRequest.isFinished() to determine if the request has completed.

You can verify that you have a valid network connections using oRequest.networkAccessible() and check for errors using oRequest.errorNumber and oRequest.errorString

oRequest = createObject("networkrequest")
oRequest.async = .f.
oRequest.username = "yourname"
oRequest.password = "yourpassword"
oRequest.setHeader("name", "value")
oRequest.setHeader("name2", "value")
oRequest.getFile("http://www.anywhere.com/filename.xxx?arg=value&arg2=value", filename)
oRequest.getFile("https://www.anywhere.com/filename.xxx?arg=value&arg2=value", filename)
oRequest.getFile("ftp://www.anywhere.com/filename.xxx?arg=value&arg2=value", filename)
oRequest.putFile("http://www.anywhere.com/filename.xxx?arg=value&arg2=value", filename)
oRequest.putFile("https://www.anywhere.com/filename.xxx?arg=value&arg2=value", filename)
oRequest.putFile("ftp://www.anywhere.com/filename.xxx?arg=value&arg2=value", filename)
oRequest.postFile("http://www.anywhere.com/filename.xxx?arg=value&arg2=value", filename)
oRequest.postFile("https://www.anywhere.com/filename.xxx?arg=value&arg2=value", filename)
oRequest.postFile("ftp://www.anywhere.com/filename.xxx?arg=value&arg2=value", filename)
m_string = oRequest.getData("http://www.anywhere.com/filename.xxx?arg=value&arg2=value")
oRequest.putData("http://www.anywhere.com/filename.xxx?arg=value&arg2=value", "send this to the server")
oRequest.postData("http://www.anywhere.com/filename.xxx?arg=value&arg2=value", "send this to the server")

You can use this class very effectively when working with OData services in the Cloud.

2013-03-28, 22:23

2013-06-28, 20:22
Two questions:

1) is there documentation on NetworkRequest on the wiki? If so, I can't find it.

2) will it handle sftp?



2013-06-28, 20:29
Hi Hank,

1. It is documented on this thread. That mentions all the class members. It looks like it has not yet been added to the doc wiki.
2. No. http, https and ftp only.

2014-08-18, 12:28

2014-08-18, 17:46
Hi Yvonne,

The doc makes no mention of https (which I assume it handles) and ftp (which I'm not sure about now).