Difference between revisions of "JFTP/read"
From Joomla! Documentation
< API16:JFTP
(New page: ===Description===
Method to read a file from the FTP server's contents into a buffer
<span class="editsection" style="font-size:76%;">
<nowiki>[</nowiki>[[Description:JFTP/read|Edit D...) |
|||
Line 21: | Line 21: | ||
| $remote Path to remote file to read on the FTP server | | $remote Path to remote file to read on the FTP server | ||
|- | |- | ||
− | | | + | | &$buffer |
| | | | ||
| $buffer Buffer variable to read file contents into | | $buffer Buffer variable to read file contents into |
Revision as of 05:02, 30 March 2010
The "API16" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.
Description[edit]
Method to read a file from the FTP server's contents into a buffer
Template:Description:JFTP/read
Syntax[edit]
read($remote, &$buffer)
Parameter Name | Default Value | Description |
---|---|---|
$remote | $remote Path to remote file to read on the FTP server | |
&$buffer | $buffer Buffer variable to read file contents into |
Returns[edit]
boolean True if successful
Defined in[edit]
libraries/joomla/client/ftp.php
Importing[edit]
jimport( 'joomla.client.ftp' );
Source Body[edit]
function read($remote, &$buffer) {
// Determine file type
$mode = $this->_findMode($remote);
// If native FTP support is enabled lets use it...
if (FTP_NATIVE) {
// turn passive mode on
if (@ftp_pasv($this->_conn, true) === false) {
JError::raiseWarning('36', 'JFTP::read: Unable to use passive mode');
return false;
}
$tmp = fopen('buffer://tmp', 'br+');
if (@ftp_fget($this->_conn, $tmp, $remote, $mode) === false) {
fclose($tmp);
JError::raiseWarning('35', 'JFTP::read: Bad response');
return false;
}
// Read tmp buffer contents
rewind($tmp);
$buffer = '';
while (!feof($tmp)) {
$buffer .= fread($tmp, 8192);
}
fclose($tmp);
return true;
}
$this->_mode($mode);
// Start passive mode
if (!$this->_passive()) {
JError::raiseWarning('36', 'JFTP::read: Unable to use passive mode');
return false;
}
if (!$this->_putCmd('RETR '.$remote, array (150, 125))) {
@ fclose($this->_dataconn);
JError::raiseWarning('35', 'JFTP::read: Bad response', 'Server response: '.$this->_response.' [Expected: 150 or 125] Path sent: '.$remote);
return false;
}
// Read data from data port connection and add to the buffer
$buffer = '';
while (!feof($this->_dataconn)) {
$buffer .= fread($this->_dataconn, 4096);
}
// Close the data port connection
fclose($this->_dataconn);
// Let's try to cleanup some line endings if it is ascii
if ($mode == FTP_ASCII) {
$buffer = preg_replace("/".CRLF."/", $this->_lineEndings[$this->_OS], $buffer);
}
if (!$this->_verifyResponse(226)) {
JError::raiseWarning('37', 'JFTP::read: Transfer Failed', 'Server response: '.$this->_response.' [Expected: 226] Path sent: '.$remote);
return false;
}
return true;
}
[Edit See Also] Template:SeeAlso:JFTP/read
Examples[edit]
<CodeExamplesForm />