Joomla Platform  13.1
Documentation des API du framework Joomla Platform
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Référence de la classe JFile

Liste de tous les membres

Fonctions membres publiques statiques

static getExt ($file)
static stripExt ($file)
static makeSafe ($file)
static copy ($src, $dest, $path=null, $use_streams=false)
static delete ($file)
static move ($src, $dest, $path= '', $use_streams=false)
static read ($filename, $incpath=false, $amount=0, $chunksize=8192, $offset=0)
static write ($file, &$buffer, $use_streams=false)
static upload ($src, $dest, $use_streams=false)
static exists ($file)
static getName ($file)

Description détaillée

Définition à la ligne 21 du fichier file.php.


Documentation des fonctions membres

static JFile::copy (   $src,
  $dest,
  $path = null,
  $use_streams = false 
)
static

Copies a file

Paramètres:
string$srcThe path to the source file
string$destThe path to the destination file
string$pathAn optional base path to prefix to the file names
boolean$use_streamsTrue to use streams
Renvoie:
boolean True on success
Depuis:
11.1

Définition à la ligne 84 du fichier file.php.

Références JText\_(), JLog\add(), JPath\clean(), JFolder\create(), JClientHelper\getCredentials(), JClientFtp\getInstance(), JFactory\getStream(), jimport(), JText\sprintf(), et JLog\WARNING.

Référencé par JArchive\extract().

{
// Prepend a base path if it exists
if ($path)
{
$src = JPath::clean($path . '/' . $src);
$dest = JPath::clean($path . '/' . $dest);
}
// Check src path
if (!is_readable($src))
{
JLog::add(JText::sprintf('JLIB_FILESYSTEM_ERROR_JFILE_FIND_COPY', $src), JLog::WARNING, 'jerror');
return false;
}
if ($use_streams)
{
$stream = JFactory::getStream();
if (!$stream->copy($src, $dest))
{
JLog::add(JText::sprintf('JLIB_FILESYSTEM_ERROR_JFILE_STREAMS', $src, $dest, $stream->getError()), JLog::WARNING, 'jerror');
return false;
}
return true;
}
else
{
$FTPOptions = JClientHelper::getCredentials('ftp');
if ($FTPOptions['enabled'] == 1)
{
// Connect the FTP client
$ftp = JClientFtp::getInstance($FTPOptions['host'], $FTPOptions['port'], array(), $FTPOptions['user'], $FTPOptions['pass']);
// If the parent folder doesn't exist we must create it
if (!file_exists(dirname($dest)))
{
jimport('joomla.filesystem.folder');
JFolder::create(dirname($dest));
}
// Translate the destination path for the FTP account
$dest = JPath::clean(str_replace(JPATH_ROOT, $FTPOptions['root'], $dest), '/');
if (!$ftp->store($src, $dest))
{
// FTP connector throws an error
return false;
}
$ret = true;
}
else
{
if (!@ copy($src, $dest))
{
JLog::add(JText::_('JLIB_FILESYSTEM_ERROR_COPY_FAILED'), JLog::WARNING, 'jerror');
return false;
}
$ret = true;
}
return $ret;
}
}

+ Voici le graphe d'appel pour cette fonction :

+ Voici le graphe des appelants de cette fonction :

static JFile::delete (   $file)
static

Delete a file or array of files

Paramètres:
mixed$fileThe file name or an array of file names
Renvoie:
boolean True on success
Depuis:
11.1

Définition à la ligne 165 du fichier file.php.

Références JLog\add(), JPath\clean(), JClientHelper\getCredentials(), JClientFtp\getInstance(), JText\sprintf(), et JLog\WARNING.

Référencé par JFilesystemPatcher\apply(), JFolder\delete(), et JPath\isOwner().

{
$FTPOptions = JClientHelper::getCredentials('ftp');
if (is_array($file))
{
$files = $file;
}
else
{
$files[] = $file;
}
// Do NOT use ftp if it is not enabled
if ($FTPOptions['enabled'] == 1)
{
// Connect the FTP client
$ftp = JClientFtp::getInstance($FTPOptions['host'], $FTPOptions['port'], array(), $FTPOptions['user'], $FTPOptions['pass']);
}
foreach ($files as $file)
{
$file = JPath::clean($file);
// Try making the file writable first. If it's read-only, it can't be deleted
// on Windows, even if the parent folder is writable
@chmod($file, 0777);
// In case of restricted permissions we zap it one way or the other
// as long as the owner is either the webserver or the ftp
if (@unlink($file))
{
// Do nothing
}
elseif ($FTPOptions['enabled'] == 1)
{
$file = JPath::clean(str_replace(JPATH_ROOT, $FTPOptions['root'], $file), '/');
if (!$ftp->delete($file))
{
// FTP connector throws an error
return false;
}
}
else
{
$filename = basename($file);
JLog::add(JText::sprintf('JLIB_FILESYSTEM_DELETE_FAILED', $filename), JLog::WARNING, 'jerror');
return false;
}
}
return true;
}

+ Voici le graphe d'appel pour cette fonction :

+ Voici le graphe des appelants de cette fonction :

static JFile::exists (   $file)
static

Wrapper for the standard file_exists function

Paramètres:
string$fileFile path
Renvoie:
boolean True if path is a file
Depuis:
11.1

Définition à la ligne 524 du fichier file.php.

Références JPath\clean().

{
return is_file(JPath::clean($file));
}

+ Voici le graphe d'appel pour cette fonction :

static JFile::getExt (   $file)
static

Gets the extension of a file name

Paramètres:
string$fileThe file name
Renvoie:
string The file extension
Depuis:
11.1

Définition à la ligne 32 du fichier file.php.

Référencé par JArchive\extract(), JGoogleDataPicasaAlbum\getMIME(), et JStream\open().

{
$dot = strrpos($file, '.') + 1;
return substr($file, $dot);
}

+ Voici le graphe des appelants de cette fonction :

static JFile::getName (   $file)
static

Returns the name, without any path.

Paramètres:
string$fileFile path
Renvoie:
string filename
Depuis:
11.1
Obsolète:
13.3 (Platform) & 4.0 (CMS) - Use basename() instead.

Définition à la ligne 539 du fichier file.php.

Références JLog\add(), et JLog\WARNING.

Référencé par JGoogleDataPicasaAlbum\upload().

{
JLog::add(__METHOD__ . ' is deprecated. Use native basename() syntax.', JLog::WARNING, 'deprecated');
// Convert back slashes to forward slashes
$file = str_replace('\\', '/', $file);
$slash = strrpos($file, '/');
if ($slash !== false)
{
return substr($file, $slash + 1);
}
else
{
return $file;
}
}

+ Voici le graphe d'appel pour cette fonction :

+ Voici le graphe des appelants de cette fonction :

static JFile::makeSafe (   $file)
static

Makes file name safe to use

Paramètres:
string$fileThe name of the file [not full path]
Renvoie:
string The sanitised string
Depuis:
11.1

Définition à la ligne 62 du fichier file.php.

{
// Remove any trailing dots, as those aren't ever valid file names.
$file = rtrim($file, '.');
$regex = array('#(\.){2,}#', '#[^A-Za-z0-9\.\_\- ]#', '#^\.#');
return trim(preg_replace($regex, '', $file));
}
static JFile::move (   $src,
  $dest,
  $path = '',
  $use_streams = false 
)
static

Moves a file

Paramètres:
string$srcThe path to the source file
string$destThe path to the destination file
string$pathAn optional base path to prefix to the file names
boolean$use_streamsTrue to use streams
Renvoie:
boolean True on success
Depuis:
11.1

Définition à la ligne 234 du fichier file.php.

Références JText\_(), JLog\add(), JPath\clean(), JClientHelper\getCredentials(), JClientFtp\getInstance(), JFactory\getStream(), JText\sprintf(), et JLog\WARNING.

{
if ($path)
{
$src = JPath::clean($path . '/' . $src);
$dest = JPath::clean($path . '/' . $dest);
}
// Check src path
if (!is_readable($src))
{
return JText::_('JLIB_FILESYSTEM_CANNOT_FIND_SOURCE_FILE');
}
if ($use_streams)
{
$stream = JFactory::getStream();
if (!$stream->move($src, $dest))
{
JLog::add(JText::sprintf('JLIB_FILESYSTEM_ERROR_JFILE_MOVE_STREAMS', $stream->getError()), JLog::WARNING, 'jerror');
return false;
}
return true;
}
else
{
$FTPOptions = JClientHelper::getCredentials('ftp');
if ($FTPOptions['enabled'] == 1)
{
// Connect the FTP client
$ftp = JClientFtp::getInstance($FTPOptions['host'], $FTPOptions['port'], array(), $FTPOptions['user'], $FTPOptions['pass']);
// Translate path for the FTP account
$src = JPath::clean(str_replace(JPATH_ROOT, $FTPOptions['root'], $src), '/');
$dest = JPath::clean(str_replace(JPATH_ROOT, $FTPOptions['root'], $dest), '/');
// Use FTP rename to simulate move
if (!$ftp->rename($src, $dest))
{
JLog::add(JText::_('JLIB_FILESYSTEM_ERROR_RENAME_FILE'), JLog::WARNING, 'jerror');
return false;
}
}
else
{
if (!@ rename($src, $dest))
{
JLog::add(JText::_('JLIB_FILESYSTEM_ERROR_RENAME_FILE'), JLog::WARNING, 'jerror');
return false;
}
}
return true;
}
}

+ Voici le graphe d'appel pour cette fonction :

static JFile::read (   $filename,
  $incpath = false,
  $amount = 0,
  $chunksize = 8192,
  $offset = 0 
)
static

Read the contents of a file

Paramètres:
string$filenameThe full file path
boolean$incpathUse include path
integer$amountAmount of file to read
integer$chunksizeSize of chunks to read
integer$offsetOffset of the file
Renvoie:
mixed Returns file contents or boolean False if failed
Depuis:
11.1
Obsolète:
13.3 (Platform) & 4.0 (CMS) - Use the native file_get_contents() instead.

Définition à la ligne 311 du fichier file.php.

Références JLog\add(), JText\sprintf(), et JLog\WARNING.

Référencé par JGoogleDataPicasaAlbum\upload().

{
JLog::add(__METHOD__ . ' is deprecated. Use native file_get_contents() syntax.', JLog::WARNING, 'deprecated');
$data = null;
if ($amount && $chunksize > $amount)
{
$chunksize = $amount;
}
if (false === $fh = fopen($filename, 'rb', $incpath))
{
JLog::add(JText::sprintf('JLIB_FILESYSTEM_ERROR_READ_UNABLE_TO_OPEN_FILE', $filename), JLog::WARNING, 'jerror');
return false;
}
clearstatcache();
if ($offset)
{
fseek($fh, $offset);
}
if ($fsize = @ filesize($filename))
{
if ($amount && $fsize > $amount)
{
$data = fread($fh, $amount);
}
else
{
$data = fread($fh, $fsize);
}
}
else
{
$data = '';
/*
* While it's:
* 1: Not the end of the file AND
* 2a: No Max Amount set OR
* 2b: The length of the data is less than the max amount we want
*/
while (!feof($fh) && (!$amount || strlen($data) < $amount))
{
$data .= fread($fh, $chunksize);
}
}
fclose($fh);
return $data;
}

+ Voici le graphe d'appel pour cette fonction :

+ Voici le graphe des appelants de cette fonction :

static JFile::stripExt (   $file)
static

Strips the last extension off of a file name

Paramètres:
string$fileThe file name
Renvoie:
string The file name without the extension
Depuis:
11.1

Définition à la ligne 48 du fichier file.php.

Référencé par JArchive\extract(), et JFormFieldFileList\getOptions().

{
return preg_replace('#\.[^.]*$#', '', $file);
}

+ Voici le graphe des appelants de cette fonction :

static JFile::upload (   $src,
  $dest,
  $use_streams = false 
)
static

Moves an uploaded file to a destination folder

Paramètres:
string$srcThe name of the php (temporary) uploaded file
string$destThe path (including filename) to move the uploaded file to
boolean$use_streamsTrue to use streams
Renvoie:
boolean True on success
Depuis:
11.1

Définition à la ligne 440 du fichier file.php.

Références JText\_(), JLog\add(), JPath\clean(), JFolder\create(), JClientHelper\getCredentials(), JClientFtp\getInstance(), JFactory\getStream(), jimport(), JPath\setPermissions(), JText\sprintf(), et JLog\WARNING.

{
// Ensure that the path is valid and clean
$dest = JPath::clean($dest);
// Create the destination directory if it does not exist
$baseDir = dirname($dest);
if (!file_exists($baseDir))
{
jimport('joomla.filesystem.folder');
JFolder::create($baseDir);
}
if ($use_streams)
{
$stream = JFactory::getStream();
if (!$stream->upload($src, $dest))
{
JLog::add(JText::sprintf('JLIB_FILESYSTEM_ERROR_UPLOAD', $stream->getError()), JLog::WARNING, 'jerror');
return false;
}
return true;
}
else
{
$FTPOptions = JClientHelper::getCredentials('ftp');
$ret = false;
if ($FTPOptions['enabled'] == 1)
{
// Connect the FTP client
$ftp = JClientFtp::getInstance($FTPOptions['host'], $FTPOptions['port'], array(), $FTPOptions['user'], $FTPOptions['pass']);
// Translate path for the FTP account
$dest = JPath::clean(str_replace(JPATH_ROOT, $FTPOptions['root'], $dest), '/');
// Copy the file to the destination directory
if (is_uploaded_file($src) && $ftp->store($src, $dest))
{
unlink($src);
$ret = true;
}
else
{
JLog::add(JText::_('JLIB_FILESYSTEM_ERROR_WARNFS_ERR02'), JLog::WARNING, 'jerror');
}
}
else
{
if (is_writeable($baseDir) && move_uploaded_file($src, $dest))
{
// Short circuit to prevent file permission errors
{
$ret = true;
}
else
{
JLog::add(JText::_('JLIB_FILESYSTEM_ERROR_WARNFS_ERR01'), JLog::WARNING, 'jerror');
}
}
else
{
JLog::add(JText::_('JLIB_FILESYSTEM_ERROR_WARNFS_ERR02'), JLog::WARNING, 'jerror');
}
}
return $ret;
}
}

+ Voici le graphe d'appel pour cette fonction :

static JFile::write (   $file,
$buffer,
  $use_streams = false 
)
static

Write contents to a file

Paramètres:
string$fileThe full file path
string&$bufferThe buffer to write
boolean$use_streamsUse streams
Renvoie:
boolean True on success
Depuis:
11.1

Définition à la ligne 379 du fichier file.php.

Références JLog\add(), JPath\clean(), JFolder\create(), JClientHelper\getCredentials(), JClientFtp\getInstance(), JFactory\getStream(), jimport(), JText\sprintf(), et JLog\WARNING.

Référencé par JArchiveZip\_createZIPFile(), JFilesystemPatcher\apply(), JArchiveBzip2\extract(), JArchiveGzip\extract(), JArchiveTar\extract(), JArchiveZip\extractCustom(), JArchiveZip\extractNative(), et JPath\isOwner().

{
@set_time_limit(ini_get('max_execution_time'));
// If the destination directory doesn't exist we need to create it
if (!file_exists(dirname($file)))
{
jimport('joomla.filesystem.folder');
JFolder::create(dirname($file));
}
if ($use_streams)
{
$stream = JFactory::getStream();
// Beef up the chunk size to a meg
$stream->set('chunksize', (1024 * 1024));
if (!$stream->writeFile($file, $buffer))
{
JLog::add(JText::sprintf('JLIB_FILESYSTEM_ERROR_WRITE_STREAMS', $file, $stream->getError()), JLog::WARNING, 'jerror');
return false;
}
return true;
}
else
{
$FTPOptions = JClientHelper::getCredentials('ftp');
if ($FTPOptions['enabled'] == 1)
{
// Connect the FTP client
$ftp = JClientFtp::getInstance($FTPOptions['host'], $FTPOptions['port'], array(), $FTPOptions['user'], $FTPOptions['pass']);
// Translate path for the FTP account and use FTP write buffer to file
$file = JPath::clean(str_replace(JPATH_ROOT, $FTPOptions['root'], $file), '/');
$ret = $ftp->write($file, $buffer);
}
else
{
$file = JPath::clean($file);
$ret = is_int(file_put_contents($file, $buffer)) ? true : false;
}
return $ret;
}
}

+ Voici le graphe d'appel pour cette fonction :

+ Voici le graphe des appelants de cette fonction :


La documentation de cette classe a été générée à partir du fichier suivant :