Download a file through HTTP.
Considers suggested file name in Content-disposition: header
and can run a callback function for different events.
The callback will be called with two parameters:
the callback type, and parameters.
The implemented callback types are:
'setup' -
called at the very beginning, parameter is a
UI object that should be used for all output
'message' -
the parameter is a string with an informational message
'saveas' -
may be used to save with a different file name, the
parameter is the filename that is about to be used.
If a 'saveas' callback
returns a non-empty string, that file name will be
used as the filename instead.
Note that $save_dir will not
be affected by this, only the basename of the file.
'start' -
download is starting, parameter is number of bytes
that are expected, or -1 if unknown
'bytesread' -
parameter is the number of bytes read so far
'done' - download is
complete, parameter is the total number
of bytes read
'connfailed' -
if the TCP connection fails, this callback is called
with
array(host,port,errno,errmsg)
'writefailed' -
if writing to disk fails, this callback is called
with
array(destfile,errmsg)
If an HTTP proxy has been configured
(http_proxy PEAR_Config setting),
the proxy will be used.
Parameter
string
$url
the URL to download
object
&$ui
PEAR_Frontend_* instance
string
$save_dir
directory to save file in
mixed
$callback
function/method to call for status
updates
object
$config
PEAR_Config instance
Return value
string -
Returns the full path of the downloaded file or a
PEAR error on failure. If the error is caused by
socket-related errors, the error object will
have the fsockopen error code available through
getCode().