lib/3rdParty/phpseclib/Net/SFTP.php

Properties

Description

Pure-PHP implementation of SFTP.

PHP versions 4 and 5 Currently only supports SFTPv3, which, according to wikipedia.org, "is the most widely used version, implemented by the popular OpenSSH SFTP server". If you want SFTPv4/5/6 support, provide me with access to an SFTPv4/5/6 server. The API for this library is modeled after the API from PHP's {@link http://php.net/book.ftp FTP extension}. Here's a short example of how to use this library: login('username', 'password')) { exit('Login Failed'); } echo $sftp->pwd() . "\r\n"; $sftp->put('filename.ext', 'hello, world!'); print_r($sftp->nlist()); ?> LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Constants

  NET_SFTP_LOG_SIMPLE = NET_SSH2_LOG_SIMPLE

Returns the message numbers


  NET_SFTP_LOG_COMPLEX = NET_SSH2_LOG_COMPLEX

Returns the message content


  NET_SFTP_CHANNEL = 2

SFTP channel constant
Net_SSH2::exec() uses 0 and Net_SSH2::read() / Net_SSH2::write() use 1.

  NET_SFTP_LOCAL_FILE = 1

Reads data from a local file.


  NET_SFTP_STRING = 2

Reads data from a string.


Classes

Net_SFTP

Properties

 
 
public  
0.1.0  
No 
No 

Description

Pure-PHP implementations of SFTP.

Methods

Net_SFTP, _disconnect, _get_sftp_packet, _list, _parseAttributes, _parseLongname, _read_put_responses, _realpath, _send_sftp_packet, _size, _stat, chdir, chmod, delete, get, getLastSFTPError, getSFTPErrors, getSFTPLog, getSupportedVersions, login, lstat, mkdir, nlist, pwd, rawlist, rename, rmdir, size, stat,

Net_SFTP( String   $host,   $port = 22,   $timeout = 10, ) : \Net_SFTP

Description

Default Constructor.
Connects to an SFTP server

Arguments

Name Type Description Default
$host String
$port n/a 22
$timeout n/a 10

Return value

Type Description
\Net_SFTP

Tags

Name Description
access public

_disconnect( Integer   $reason, ) : Boolean

Description

Disconnect

Arguments

Name Type Description Default
$reason Integer

Return value

Type Description
Boolean

Tags

Name Description
access private

_get_sftp_packet( ) : String

Description

Receives SFTP Packets
See '6. General Packet Format' of draft-ietf-secsh-filexfer-13 for more info. Incidentally, the number of SSH_MSG_CHANNEL_DATA messages has no bearing on the number of SFTP packets present. There can be one SSH_MSG_CHANNEL_DATA messages containing two SFTP packets or there can be two SSH_MSG_CHANNEL_DATA messages containing one SFTP packet.

Return value

Type Description
String

Tags

Name Description
see
access private

_list(   $dir,   $raw = true, ) : Mixed

Description

Reads a list, be it detailed or not, of files in the given directory

Arguments

Name Type Description Default
$dir n/a
$raw n/a true

Return value

Type Description
Mixed

Tags

Name Description
access private

_parseAttributes( String   $response, ) : Array

Description

Parse Attributes
See '7. File Attributes' of draft-ietf-secsh-filexfer-13 for more info.

Arguments

Name Type Description Default
$response String

Return value

Type Description
Array

Tags

Name Description
access private

_parseLongname( String   $longname, ) : Mixed

Description

Parse Longname
SFTPv3 doesn't provide any easy way of identifying a file type. You could try to open a file as a directory and see if an error is returned or you could try to parse the SFTPv3-specific longname field of the SSH_FXP_NAME packet. That's what this function does. The result is returned using the {@link http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-5.2 SFTPv4 type constants}. If the longname is in an unrecognized format bool(false) is returned.

Arguments

Name Type Description Default
$longname String

Return value

Type Description
Mixed

Tags

Name Description
access private

_read_put_responses( Integer   $i, ) : Boolean

Description

Reads multiple successive SSH_FXP_WRITE responses
Sending an SSH_FXP_WRITE packet and immediately reading its response isn't as efficient as blindly sending out $i SSH_FXP_WRITEs, in succession, and then reading $i responses.

Arguments

Name Type Description Default
$i Integer

Return value

Type Description
Boolean

Tags

Name Description
access private

_realpath( String   $dir, ) : Mixed

Description

Canonicalize the Server-Side Path Name
SFTP doesn't provide a mechanism by which the current working directory can be changed, so we'll emulate it. Returns the absolute (canonicalized) path. If $mode is set to NET_SFTP_CONFIRM_DIR (as opposed to NET_SFTP_CONFIRM_NONE, which is what it is set to by default), false is returned if $dir is not a valid directory.

Arguments

Name Type Description Default
$dir String

Return value

Type Description
Mixed

Tags

Name Description
see
access private

_send_sftp_packet( Integer   $type, String   $data, ) : Boolean

Description

Sends SFTP Packets
See '6. General Packet Format' of draft-ietf-secsh-filexfer-13 for more info.

Arguments

Name Type Description Default
$type Integer
$data String

Return value

Type Description
Boolean

Tags

Name Description
see
see
access private

_size( String   $filename, ) : Mixed

Description

Returns the file size, in bytes, or false, on failure
Determines the size without calling Net_SFTP::_realpath()

Arguments

Name Type Description Default
$filename String

Return value

Type Description
Mixed

Tags

Name Description
access private

_stat( String   $filename, Integer   $type, ) : Mixed

Description

Returns general information about a file or symbolic link
Determines information without calling Net_SFTP::_realpath(). The second parameter can be either NET_SFTP_STAT or NET_SFTP_LSTAT.

Arguments

Name Type Description Default
$filename String
$type Integer

Return value

Type Description
Mixed

Tags

Name Description
access private

chdir( String   $dir, ) : Boolean

Description

Changes the current directory

Arguments

Name Type Description Default
$dir String

Return value

Type Description
Boolean

Tags

Name Description
access public

chmod( Integer   $mode, String   $filename, ) : Mixed

Description

Set permissions on a file.
Returns the new file permissions on success or FALSE on error.

Arguments

Name Type Description Default
$mode Integer
$filename String

Return value

Type Description
Mixed

Tags

Name Description
access public

delete( String   $path, ) : Boolean

Description

Deletes a file on the SFTP server.

Arguments

Name Type Description Default
$path String

Return value

Type Description
Boolean

Tags

Name Description
access public

get( String   $remote_file,   $local_file = false, ) : Mixed

Description

Downloads a file from the SFTP server.
Returns a string containing the contents of $remote_file if $local_file is left undefined or a boolean false if the operation was unsuccessful. If $local_file is defined, returns true or false depending on the success of the operation

Arguments

Name Type Description Default
$remote_file String
$local_file n/a false

Return value

Type Description
Mixed

Tags

Name Description
access public

getLastSFTPError( ) : String

Description

Returns the last error

Return value

Type Description
String

Tags

Name Description
access public

getSFTPErrors( ) : String

Description

Returns all errors

Return value

Type Description
String

Tags

Name Description
access public

getSFTPLog( ) : String

Description

Returns a log of the packets that have been sent and received.
Returns a string if NET_SFTP_LOGGING == NET_SFTP_LOG_COMPLEX, an array if NET_SFTP_LOGGING == NET_SFTP_LOG_SIMPLE and false if !defined('NET_SFTP_LOGGING')

Return value

Type Description
String or Array

Tags

Name Description
access public

getSupportedVersions( ) : Array

Description

Get supported SFTP versions

Return value

Type Description
Array

Tags

Name Description
access public

login( String   $username,   $password = '', ) : Boolean

Description

Login

Arguments

Name Type Description Default
$username String
$password n/a ''

Return value

Type Description
Boolean

Tags

Name Description
access public

lstat( String   $filename, ) : Mixed

Description

Returns general information about a file or symbolic link.
Returns an array on success and false otherwise.

Arguments

Name Type Description Default
$filename String

Return value

Type Description
Mixed

Tags

Name Description
access public

mkdir( String   $dir, ) : Boolean

Description

Creates a directory.

Arguments

Name Type Description Default
$dir String

Return value

Type Description
Boolean

Tags

Name Description
access public

nlist(   $dir = '.', ) : Mixed

Description

Returns a list of files in the given directory

Arguments

Name Type Description Default
$dir n/a '.'

Return value

Type Description
Mixed

Tags

Name Description
access public

pwd( ) : Mixed

Description

Returns the current directory name

Return value

Type Description
Mixed

Tags

Name Description
access public

rawlist(   $dir = '.', ) : Mixed

Description

Returns a detailed list of files in the given directory

Arguments

Name Type Description Default
$dir n/a '.'

Return value

Type Description
Mixed

Tags

Name Description
access public

rename( String   $oldname, String   $newname, ) : Boolean

Description

Renames a file or a directory on the SFTP server

Arguments

Name Type Description Default
$oldname String
$newname String

Return value

Type Description
Boolean

Tags

Name Description
access public

rmdir( String   $dir, ) : Boolean

Description

Removes a directory.

Arguments

Name Type Description Default
$dir String

Return value

Type Description
Boolean

Tags

Name Description
access public

size( String   $filename, ) : Mixed

Description

Returns the file size, in bytes, or false, on failure
Files larger than 4GB will show up as being exactly 4GB.

Arguments

Name Type Description Default
$filename String

Return value

Type Description
Mixed

Tags

Name Description
access public

stat( String   $filename, ) : Mixed

Description

Returns general information about a file.
Returns an array on success and false otherwise.

Arguments

Name Type Description Default
$filename String

Return value

Type Description
Mixed

Tags

Name Description
access public

Properties

$extensions, $fileType, $packet_buffer, $packet_log, $packet_type, $packet_type_log, $packet_types, $pwd, $request_id, $sftp_errors, $status_codes, $version,

Array  public  $extensions = array()

Extensions supported by the server


Integer  public  $fileType = 0

File Type


String  public  $packet_buffer = ''

Packet Buffer


Array  public  $packet_log = array()

Packet Log


Integer  public  $packet_type = -1

The Packet Type
The request ID exists in the off chance that a packet is sent out-of-order. Of course, this library doesn't support concurrent actions, so it's somewhat academic, here.

Array  public  $packet_type_log = array()

Packet Type Log


Array  public  $packet_types = array()

Packet Types


String  public  $pwd = false

Current working directory


Integer  public  $request_id = false

The Request ID
The request ID exists in the off chance that a packet is sent out-of-order. Of course, this library doesn't support concurrent actions, so it's somewhat academic, here.

String  public  $sftp_errors = array()

Error information


Array  public  $status_codes = array()

Status Codes


Integer  public  $version =

Server SFTP version


Documentation was generated by phpDocumentor 2.1.0 .

Namespaces

  • global

    Packages