API16:JFile/upload
From Joomla! Documentation
Description
Moves an uploaded file to a destination folder
<! removed transcluded page call, red link never existed >
Syntax
upload($src, $dest, $use_streams=false)
Parameter Name | Default Value | Description |
---|---|---|
$src | $src The name of the php (temporary) uploaded file | |
$dest | $dest The path (including filename) to move the uploaded file to | |
$use_streams | false |
Returns
boolean True on success
Defined in
libraries/joomla/filesystem/file.php
Importing
jimport( 'joomla.filesystem.file' );
Source Body
function upload($src, $dest, $use_streams=false)
{
// 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)) {
JError::raiseWarning(21, 'JFile::upload: '. $stream->getError());
return false;
}
return true;
} else {
// Initialise variables.
jimport('joomla.client.helper');
$FTPOptions = JClientHelper::getCredentials('ftp');
$ret = false;
if ($FTPOptions['enabled'] == 1) {
// Connect the FTP client
jimport('joomla.client.ftp');
$ftp = & JFTP::getInstance($FTPOptions['host'], $FTPOptions['port'], null, $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 ($ftp->store($src, $dest)) {
$ftp->chmod($dest, 0777);
$ret = true;
} else {
JError::raiseWarning(21, JText::_('WARNFS_ERR02'));
}
} else {
if (is_writeable($baseDir) && move_uploaded_file($src, $dest)) { // Short circuit to prevent file permission errors
if (JPath::setPermissions($dest)) {
$ret = true;
} else {
JError::raiseWarning(21, JText::_('WARNFS_ERR01'));
}
} else {
JError::raiseWarning(21, JText::_('WARNFS_ERR02'));
}
}
return $ret;
}
}
<! removed transcluded page call, red link never existed >
Examples
Code Examples