本文整理汇总了PHP中KunenaAttachmentHelper::getAvailableFilename方法的典型用法代码示例。如果您正苦于以下问题:PHP KunenaAttachmentHelper::getAvailableFilename方法的具体用法?PHP KunenaAttachmentHelper::getAvailableFilename怎么用?PHP KunenaAttachmentHelper::getAvailableFilename使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KunenaAttachmentHelper
的用法示例。
在下文中一共展示了KunenaAttachmentHelper::getAvailableFilename方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: saveFile
/**
* Set attachment file.
*
* Copies the attachment into proper location and makes sure that all the unset fields get properly assigned.
*
* @param string $source Absolute path to the upcoming attachment.
* @param string $basename Filename without extension.
* @param string $extension File extension.
* @param bool $unlink Whether to delete the original file or not.
* @param bool $overwrite If not allowed, throw exception if the file exists.
*
* @return bool
* @throws InvalidArgumentException
* @throws RuntimeException
*
* @since K4.0
*/
public function saveFile($source, $basename = null, $extension = null, $unlink = false, $overwrite = false)
{
if (!is_file($source)) {
throw new InvalidArgumentException(__CLASS__ . '::' . __METHOD__ . '(): Attachment file not found.');
}
// Hash, size and MIME are set during saving, so let's deal with all other variables.
$this->userid = is_null($this->userid) ? KunenaUserHelper::getMyself() : $this->userid;
$this->folder = is_null($this->folder) ? "media/kunena/attachments/{$this->userid}" : $this->folder;
$this->protected = is_null($this->protected) ? (bool) KunenaConfig::getInstance()->attachment_protection : $this->protected;
if (!$this->filename_real) {
$this->filename_real = $this->filename;
}
if (!$this->filename || $this->filename == $this->filename_real) {
if (!$basename || !$extension) {
throw new InvalidArgumentException(__CLASS__ . '::' . __METHOD__ . '(): Parameters $basename or $extension not provided.');
}
// Find available filename.
$this->filename = KunenaAttachmentHelper::getAvailableFilename($this->folder, $basename, $extension, $this->protected);
}
// Create target directory if it does not exist.
if (!KunenaFolder::exists(JPATH_ROOT . "/{$this->folder}") && !KunenaFolder::create(JPATH_ROOT . "/{$this->folder}")) {
throw new RuntimeException(JText::_('Failed to create attachment directory.'));
}
$destination = JPATH_ROOT . "/{$this->folder}/{$this->filename}";
// Move the file into the final location (if not already in there).
if ($source != $destination) {
// Create target directory if it does not exist.
if (!$overwrite && is_file($destination)) {
throw new RuntimeException(JText::sprintf('Attachment %s already exists.'), $this->filename_real);
}
if ($unlink) {
@chmod($source, 0644);
}
$success = KunenaFile::copy($source, $destination);
if (!$success) {
throw new RuntimeException(JText::sprintf('COM_KUNENA_UPLOAD_ERROR_NOT_MOVED', $destination));
}
KunenaPath::setPermissions($destination);
if ($unlink) {
unlink($source);
}
}
return $this->save();
}