本文整理汇总了PHP中GetFileName函数的典型用法代码示例。如果您正苦于以下问题:PHP GetFileName函数的具体用法?PHP GetFileName怎么用?PHP GetFileName使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetFileName函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: CheckRights
function CheckRights($method, $strong, &$path)
{
$result = true;
if (!parent::CheckRights($method)) {
$result = false;
$GLOBALS["APPLICATION"]->ThrowException(GetMessage('WD_ACCESS_DENIED'), 'ACCESS_DENIED');
} elseif ($path != '') {
$io = CBXVirtualIo::GetInstance();
$path = $io->CombinePath($this->_udecode($path));
$strFileName = GetFileName($path);
$extention = "." . strtolower(GetFileExtension($strFileName));
if (in_array($method, array("COPY", "MOVE", "PUT"))) {
if (!$GLOBALS["USER"]->IsAdmin() && HasScriptExtension($strFileName)) {
$result = false;
$GLOBALS['APPLICATION']->ThrowException(GetMessage("WD_FILE_ERROR13"), "FORBIDDEN_EXTENTION");
} elseif (IsFileUnsafe($strFileName) || $strFileName == "index.php") {
$result = false;
$GLOBALS['APPLICATION']->ThrowException(GetMessage("WD_FILE_ERROR14"), "FORBIDDEN_NAME");
} elseif (!$io->ValidatePathString($io->CombinePath("/", $path)) || !$io->ValidateFilenameString($strFileName)) {
$result = false;
$GLOBALS['APPLICATION']->ThrowException(GetMessage("WD_FILE_ERROR14"), "FORBIDDEN_NAME");
} elseif (in_array($extention, $this->arFileForbiddenExtentions["WRITE"])) {
$result = false;
$GLOBALS['APPLICATION']->ThrowException(GetMessage("WD_FILE_ERROR13"), "FORBIDDEN_EXTENTION");
}
} elseif (in_array($extention, $this->arFileForbiddenExtentions["READ"])) {
$result = false;
$GLOBALS["APPLICATION"]->ThrowException(GetMessage('WD_ACCESS_DENIED'), 'ACCESS_DENIED');
}
}
return $result;
}
示例2: SmiliesReplace
/**
* Парсер смайликов.
* @param $text
* @return void
*/
function SmiliesReplace(&$text)
{
static $codes = null;
if (!isset($codes)) {
$codes = array();
$smilies_dir = System::config('general/smilies_dir');
$smilies = System::database()->Select('smilies');
// Пусть отключенные смайлики тоже парсятся
foreach ($smilies as $smile) {
$sub_codes = explode(',', $smile['code']);
$smile_file = SafeDB($smile['file'], 255, str);
if ($smile['desc'] != '') {
$title = SafeDB($smile['desc'], 255, str);
} else {
$title = SafeDB(GetFileName($smile_file, true), 255, str);
}
foreach ($sub_codes as $code) {
$code = trim($code);
if ($code != '') {
$codes[$code] = '<img src="' . RealPath2($smilies_dir . $smile_file) . '" title="' . $title . '">';
}
}
}
}
$text = strtr($text, $codes);
}
示例3: FormsCheckType
function FormsCheckType($var, $typearr, &$error = null, &$filename = null)
{
if ($typearr[1] == 'file') {
$file_save_dir = 'uploads/forms';
if (!is_dir($file_save_dir)) {
mkdir($file_save_dir);
}
$UploadErrors = array(0 => '', 1 => 'Размер файла превышен', 2 => 'Размер файла превышен', 3 => 'Файл загружен только частично', 4 => 'Файл не был загружен.', 6 => 'Не найдена папка для временных файлов на сервере', 7 => 'Ошибка во время записи на диск', 8 => 'Загрузка файла была прервана расширением PHP', 9 => 'Ошибка во время записи на диск');
if ($var['error'] == UPLOAD_ERR_OK) {
$filename = Translit($var['name'], true);
$ext = GetFileExt($filename);
$name = GetFileName($filename, true);
$file_path = $file_save_dir . '/' . $name . '_' . GenRandomString(8) . $ext;
copy($var['tmp_name'], $file_path);
return $file_path;
} else {
if ($var['error'] != 4) {
$error = $UploadErrors[$var['error']];
}
return '';
}
}
if ($typearr[2] == 'false') {
$strip_tags = false;
} else {
$strip_tags = true;
}
$r = SafeEnv($var, (int) $typearr[0], (string) $typearr[1], $strip_tags);
if ($r === false) {
$r = '0';
} elseif ($r === true) {
$r = '1';
}
return $r;
}
示例4: __construct
public function __construct($Url = '', $Utf8 = false)
{
if ($Url == '') {
return;
}
$info = parse_url($Url);
if ($info === false) {
return;
}
if (isset($info['scheme'])) {
$this->Protocol = $info['scheme'];
}
if (isset($info['host'])) {
$this->Host = $info['host'];
}
if (isset($info['port'])) {
$this->Port = $info['port'];
}
if (isset($info['user'])) {
$this->User = $info['user'];
}
if (isset($info['pass'])) {
$this->Password = $info['pass'];
}
if (isset($info['path'])) {
$this->Path = GetPathName($info['path']);
$this->Document = GetFileName($info['path']);
}
if (isset($info['fragment'])) {
$this->Anchor = $info['fragment'];
}
if (isset($info['query'])) {
parse_str($info['query'], $params);
parent::__construct($params);
if ($Utf8) {
foreach ($this as $key => $value) {
$value = Utf8ToCp1251($value);
$this[$key] = $value;
}
}
} else {
parent::__construct();
}
}
示例5: GetFileNewName
function GetFileNewName($aid, $typeid, $timetag, $title, $ismake = 0, $rank = 0, $namerule = '', $typedir = '', $money = 0, $filename = '')
{
global $cfg_arc_dirname;
$articlename = GetFileName($aid, $typeid, $timetag, $title, $ismake, $rank, $namerule, $typedir, $money, $filename);
if (ereg("\\?", $articlename)) {
return $articlename;
}
if ($cfg_arc_dirname == 'Y' && ereg("/\$", $articlename)) {
$articlename = $articlename . "index.html";
}
$slen = strlen($articlename) - 1;
for ($i = $slen; $i >= 0; $i--) {
if ($articlename[$i] == '/') {
$subpos = $i;
break;
}
}
$okdir = substr($articlename, 0, $subpos);
CreateDir($okdir);
return $articlename;
}
示例6: import
public static function import($arParams)
{
global $APPLICATION;
// check fields
$aMsg = array();
$arParams['SET_ID'] = intval($arParams['SET_ID']);
$arParams['IMPORT_IF_FILE_EXISTS'] = isset($arParams['IMPORT_IF_FILE_EXISTS']) && $arParams['IMPORT_IF_FILE_EXISTS'] == 'Y' ? true : false;
if (isset($arParams['FILE']) && GetFileExtension($arParams['FILE']) != 'zip') {
$aMsg["FILE_EXT"] = array("id" => "FILE_EXT", "text" => GetMessage("MAIN_SMILE_IMPORT_FILE_EXT_ERROR"));
} else {
if (!isset($arParams['FILE']) || !file_exists($arParams['FILE'])) {
$aMsg["FILE"] = array("id" => "FILE", "text" => GetMessage("MAIN_SMILE_IMPORT_FILE_ERROR"));
} else {
if ($arParams['SET_ID'] <= 0) {
$aMsg["SET_ID"] = array("id" => "SET_ID", "text" => GetMessage("MAIN_SMILE_IMPORT_SET_ID_ERROR"));
}
}
}
if (!empty($aMsg)) {
$e = new CAdminException($aMsg);
$APPLICATION->ThrowException($e);
return false;
}
$sUnpackDir = CTempFile::GetDirectoryName(1);
CheckDirPath($sUnpackDir);
/** @var IBXArchive $oArchiver */
$oArchiver = CBXArchive::GetArchive($arParams['FILE'], "ZIP");
$oArchiver->SetOptions(array("STEP_TIME" => 300));
if (!$oArchiver->Unpack($sUnpackDir)) {
$aMsg["UNPACK"] = array("id" => "UNPACK", "text" => GetMessage("MAIN_SMILE_IMPORT_UNPACK_ERROR"));
$e = new CAdminException($aMsg);
$APPLICATION->ThrowException($e);
return false;
}
$arSmiles = array();
if (file_exists($sUnpackDir . 'install.csv')) {
$arLang = array();
$db_res = CLanguage::GetList($b = "sort", $o = "asc");
while ($res = $db_res->Fetch()) {
if (file_exists($sUnpackDir . 'install_lang_' . $res["LID"] . '.csv')) {
$arSmiles = array();
$csvFile = new CCSVData();
$csvFile->LoadFile($sUnpackDir . 'install_lang_' . $res["LID"] . '.csv');
$csvFile->SetFieldsType("R");
$csvFile->SetFirstHeader(false);
while ($smile = $csvFile->Fetch()) {
if (defined('BX_UTF') && BX_UTF && $res["LID"] == 'ru') {
$smile[1] = $APPLICATION->ConvertCharset($smile[1], 'windows-1251', 'utf-8');
}
$arLang[$smile[0]][$res["LID"]] = $smile[1];
}
}
}
$csvFile = new CCSVData();
$csvFile->LoadFile($sUnpackDir . 'install.csv');
$csvFile->SetFieldsType("R");
$csvFile->SetFirstHeader(false);
while ($smileRes = $csvFile->Fetch()) {
$smile = array('TYPE' => $smileRes[0], 'CLICKABLE' => $smileRes[1] == 'Y' ? 'Y' : 'N', 'SORT' => intval($smileRes[2]), 'IMAGE' => $smileRes[3], 'IMAGE_WIDTH' => intval($smileRes[4]), 'IMAGE_HEIGHT' => intval($smileRes[5]), 'IMAGE_DEFINITION' => in_array($smileRes[6], array(self::IMAGE_SD, self::IMAGE_HD, self::IMAGE_UHD)) ? $smileRes[6] : ($smileRes[6] == 'Y' ? self::IMAGE_HD : self::IMAGE_SD), 'HIDDEN' => in_array($smileRes[7], array('Y', 'N')) ? $smileRes[7] : 'N', 'IMAGE_LANG' => in_array($smileRes[7], array('Y', 'N')) ? $smileRes[8] : $smileRes[7], 'TYPING' => in_array($smileRes[7], array('Y', 'N')) ? $smileRes[9] : $smileRes[8]);
if (!in_array($smile['TYPE'], array(CSmile::TYPE_SMILE, CSmile::TYPE_ICON))) {
continue;
}
$smile['IMAGE'] = GetFileName($smile['IMAGE']);
$imgArray = CFile::GetImageSize($sUnpackDir . $smile['IMAGE']);
if (!is_array($imgArray)) {
continue;
}
$arInsert = array('TYPE' => $smile['TYPE'], 'SET_ID' => $arParams['SET_ID'], 'CLICKABLE' => $smile['CLICKABLE'], 'SORT' => $smile['SORT'], 'IMAGE' => $smile['IMAGE'], 'IMAGE_WIDTH' => $smile['IMAGE_WIDTH'], 'IMAGE_HEIGHT' => $smile['IMAGE_HEIGHT'], 'IMAGE_DEFINITION' => $smile['IMAGE_DEFINITION'], 'HIDDEN' => $smile['HIDDEN'], 'TYPING' => $smile['TYPING']);
if (isset($arLang[$smile['IMAGE_LANG']])) {
$arInsert['LANG'] = $arLang[$smile['IMAGE_LANG']];
}
$arSmiles[] = $arInsert;
}
} else {
$smileSet = CSmileSet::getById($arParams['SET_ID']);
if ($handle = @opendir($sUnpackDir)) {
$sort = 300;
while (($file = readdir($handle)) !== false) {
if ($file == "." || $file == "..") {
continue;
}
if (is_file($sUnpackDir . $file)) {
$imgArray = CFile::GetImageSize($sUnpackDir . $file);
if (is_array($imgArray)) {
$smileHR = self::IMAGE_SD;
$smileType = CSmile::TYPE_SMILE;
$smileCode = GetFileNameWithoutExtension($file);
if (strpos($file, 'smile_') !== false && strpos($file, 'smile_') == 0) {
$smileCode = substr($smileCode, 6);
} elseif (strpos($file, 'smile') !== false && strpos($file, 'smile') == 0) {
$smileCode = substr($smileCode, 5);
} elseif (strpos($file, 'icon_') !== false && strpos($file, 'icon_') == 0) {
$smileType = CSmile::TYPE_ICON;
$smileCode = substr($smileCode, 5);
} else {
if (strpos($file, 'icon') !== false && strpos($file, 'icon') == 0) {
$smileType = CSmile::TYPE_ICON;
$smileCode = substr($smileCode, 4);
}
}
//.........这里部分代码省略.........
示例7: GetFileName
function GetFileName($path)
{
return GetFileName($path);
}
示例8: elseif
} elseif (SITE_TEMPLATE_ID == "bitrix24") {
$sType = "b24_template";
}
$arResult = array("SITE_TYPE" => $sType, "ICON" => "empty.jpg", "F_SIZE" => 0, "DESCRIPTION" => "", "FILE_NOT_FOUND" => false, "PASSWORD" => "NOT");
$hash = CWebDavExtLinks::GetHashFromURL();
if ($hash === false) {
ShowError(GetMessage('WD_MODULE_IS_FILE_NOT_FOUND'));
return 0;
}
//not set default value to in getList LINK_TYPE
$resF = CWebDavExtLinks::GetList(array("HASH" => $hash, "ACTUAL" => true, 'LINK_TYPE' => null), array("URL", "RESOURCE_TYPE", "FOLDER", "IBLOCK_TYPE", "IBLOCK_ID", "BASE_URL", "HASH", "CREATION_DATE", "USER_ID", "SALT", "PASSWORD", "LIFETIME", "F_SIZE", "DESCRIPTION", "ROOT_SECTION_ID", "URL_HASH", 'SINGLE_SESSION', 'LINK_TYPE', 'DOWNLOAD_COUNT', 'VERSION_ID', 'ELEMENT_ID', 'FILE_ID'));
$arGetListRes = null;
if ($arF = $resF->Fetch()) {
$arGetListRes = $arF;
$arResult["HASH"] = $hash;
$arResult["NAME"] = GetFileName($arF["URL"]);
$arResult["ICON"] = CWebDavExtLinks::GetExtensionIcon($arF["URL"]);
$arResult["F_SIZE"] = $arF["F_SIZE"];
$arResult["DESCRIPTION"] = $arF["DESCRIPTION"];
$arResult["PASSWORD"] = CheckUserPassword($arF);
$arResult["DOWNLOAD_COUNT"] = $arF['DOWNLOAD_COUNT'];
}
if (!$arF || !empty($_GET['notfoud'])) {
$arResult["NAME"] = GetMessage("WD_MODULE_IS_FILE_NOT_FOUND");
$arResult["ICON"] = "nf.png";
$arResult["F_SIZE"] = 0;
$arResult["DESCRIPTION"] = GetMessage("WD_MODULE_IS_FILE_NOT_FOUND_DESCRIPTION");
$arResult["FILE_NOT_FOUND"] = true;
}
if (!empty($_POST['checkViewByGoogle'])) {
CWebDavTools::sendJsonResponse(array('viewByGoogle' => $arResult["DOWNLOAD_COUNT"] > 0));
示例9: GetFileName
public static function GetFileName($path)
{
return GetFileName($path);
}
示例10: IsFileUnsafe
function IsFileUnsafe($name)
{
static $arFiles = false;
if($arFiles === false)
{
$fileList = COption::GetOptionString("main", "~unsafe_files", ".htaccess,.htpasswd,web.config,global.asax");
$arFiles = explode(",", strtolower($fileList));
}
$name = GetFileName($name);
return in_array(strtolower(TrimUnsafe($name)), $arFiles);
}
示例11: RestoreBackupFile
/**
* Восстанавливает базу данных из резервной копии.
* @param type $BackupFile Имя файла бекапа
* @param type $Table Имя таблицы, если нужно восстановить одну таблицу
*/
public function RestoreBackupFile($BackupFile, $Table = '')
{
$zip = new ZipArchive();
$iferrors = false;
if (GetSecondFileExt($BackupFile, true) == $this->Name && $zip->open($BackupFile) === true) {
for ($i = 0; $i < $zip->numFiles; $i++) {
$filename = $zip->getNameIndex($i);
if ($Table == '' || $Table == GetFileName($filename, true)) {
$sql = $zip->getFromIndex($i);
$sql = explode(";", $sql);
foreach ($sql as $query) {
if (trim($query) == '') {
continue;
}
if (System::database()->MySQLQuery($query) === false) {
if (defined('ADMIN_SCRIPT')) {
System::admin()->HighlightError(System::database()->MySQLGetErrMsg() . ' (' . $filename . ')');
}
$iferrors = true;
}
}
}
}
$zip->close();
// Обрабытываем ошибки
if ($iferrors) {
return 2;
// Ошибки при восстановлении таблиц
}
return 1;
// Успешно восстановлено
} else {
return 3;
// Неверный формат файла
}
}
示例12: CheckFile
function CheckFile($arFile, $intMaxSize=0, $strMimeType=false, $strExt=false)
{
/****************************** QUOTA ******************************/
if (COption::GetOptionInt("main", "disk_space") > 0)
{
$quota = new CDiskQuota;
if (!$quota->checkDiskQuota($arFile))
return $quota->LAST_ERROR;
}
/****************************** QUOTA ******************************/
if(strlen($arFile["name"])<=0)
return "";
if(strlen(GetFileName($arFile["name"])) > 255)
return GetMessage("MAIN_BAD_FILENAME_LEN");
if(COption::GetOptionString("main", "save_original_file_name", "N")=="Y" && COption::GetOptionString("main", "convert_original_file_name", "Y")!="Y")
{
$io = CBXVirtualIo::GetInstance();
if(!$io->ValidateFilenameString(bx_basename($arFile["name"])))
return GetMessage("MAIN_BAD_FILENAME1");
}
if($intMaxSize>0 && intval($arFile["size"])>$intMaxSize)
{
return GetMessage("FILE_BAD_SIZE")." (".CFile::FormatSize($intMaxSize).").";
}
$strFileExt = '';
if($strExt)
{
$strFileExt = GetFileExtension($arFile["name"]);
if($strFileExt == '')
return GetMessage("FILE_BAD_TYPE");
}
//Check mime_type and ext
if($strMimeType!==false && substr($arFile["type"], 0, strlen($strMimeType)) != $strMimeType)
return GetMessage("FILE_BAD_TYPE")."!";
if($strExt===false)
return "";
$IsExtCorrect = true;
if($strExt)
{
$IsExtCorrect = false;
$tok = strtok($strExt,",");
while($tok)
{
if(strtolower(trim($tok)) == strtolower($strFileExt))
{
$IsExtCorrect=true;
break;
}
$tok = strtok(",");
}
}
if($IsExtCorrect)
return "";
return GetMessage("FILE_BAD_TYPE")." (".strip_tags($strFileExt).")!";
}
示例13: array
$aTabs[] = array("DIV" => "edit1", "TAB" => GetMessage("FLOW_EDIT_RECORD"), "ICON" => "workflow_edit", "TITLE" => GetMessage("FLOW_NEW_RECORD"));
}
$aTabs[] = array("DIV" => "edit2", "TAB" => GetMessage("FLOW_UPLOADED_FILES"), "ICON" => "workflow_edit", "TITLE" => GetMessage("FLOW_UPLOADED_FILES_TITLE"));
$aTabs[] = array("DIV" => "edit3", "TAB" => GetMessage("FLOW_COMMENTS"), "ICON" => "workflow_edit", "TITLE" => GetMessage("FLOW_COMMENTS_TITLE"));
$tabControl = new CAdminTabControl("tabControl", $aTabs);
// Save or Apply was clicked
if ((strlen($save) > 0 || strlen($apply) > 0) && $WORKFLOW_RIGHT > "R" && $REQUEST_METHOD == "POST" && check_bitrix_sessid()) {
if (CheckFields()) {
$nums = intval($nums);
if ($nums > 0) {
for ($i = 1; $i <= $nums; $i++) {
$arFile = $HTTP_POST_FILES["file_" . $i];
if (strlen($arFile["name"]) <= 0 || $arFile["tmp_name"] == "none") {
continue;
}
$arFile["name"] = GetFileName($arFile["name"]);
$fname = ${"fname_" . $i};
if (strlen($fname) <= 0) {
$fname = $arFile["name"];
}
$path = GetDirPath($FILENAME);
$pathto = Rel2Abs($path, $fname);
$ext = GetFileExtension($pathto);
if (!$USER->IsAdmin() && in_array($ext, $arExt)) {
$message = new CAdminMessage(array("MESSAGE" => GetMessage("FLOW_ERROR"), "DETAILS" => GetMessage("FLOW_FILEUPLOAD_PHPERROR") . " \"" . $pathto . "\"", "TYPE" => "ERROR"));
} elseif (!$USER->CanDoFileOperation('fm_edit_in_workflow', array($SITE_ID, $pathto))) {
$message = new CAdminMessage(array("MESSAGE" => GetMessage("FLOW_ERROR"), "DETAILS" => GetMessage("FLOW_FILEUPLOAD_ACCESS_DENIED") . " \"" . $pathto . "\": " . GetMessage("FLOW_MIN_RIGHTS"), "TYPE" => "ERROR"));
} elseif (!CBXVirtualIoFileSystem::ValidatePathString($pathto)) {
$message = new CAdminMessage(array("MESSAGE" => GetMessage("FLOW_ERROR"), "DETAILS" => GetMessage("FLOW_FILE_NAME_NOT_VALID"), "TYPE" => "ERROR"));
} else {
$z = CWorkflow::GetFileByID($ID, $pathto);
示例14: SaveFile
function SaveFile($arFile, $strSavePath, $bForceMD5 = false, $bSkipExt = false)
{
$strFileName = GetFileName($arFile["name"]);
/* filename.gif */
if (isset($arFile["del"]) && $arFile["del"] != '') {
CFile::DoDelete($arFile["old_file"]);
if ($strFileName == '') {
return "NULL";
}
}
if ($arFile["name"] == '') {
if (isset($arFile["description"]) && intval($arFile["old_file"]) > 0) {
CFile::UpdateDesc($arFile["old_file"], $arFile["description"]);
}
return false;
}
if (isset($arFile["content"])) {
if (!isset($arFile["size"])) {
$arFile["size"] = CUtil::BinStrlen($arFile["content"]);
}
} else {
try {
$file = new IO\File($arFile["tmp_name"]);
$arFile["size"] = $file->getSize();
} catch (IO\IoException $e) {
$arFile["size"] = 0;
}
}
$arFile["ORIGINAL_NAME"] = $strFileName;
//translit, replace unsafe chars, etc.
$strFileName = self::transformName($strFileName, $bForceMD5, $bSkipExt);
//transformed name must be valid, check disk quota, etc.
if (self::validateFile($strFileName, $arFile) !== "") {
return false;
}
if ($arFile["type"] == "image/pjpeg" || $arFile["type"] == "image/jpg") {
$arFile["type"] = "image/jpeg";
}
$bExternalStorage = false;
foreach (GetModuleEvents("main", "OnFileSave", true) as $arEvent) {
if (ExecuteModuleEventEx($arEvent, array(&$arFile, $strFileName, $strSavePath, $bForceMD5, $bSkipExt))) {
$bExternalStorage = true;
break;
}
}
if (!$bExternalStorage) {
$upload_dir = COption::GetOptionString("main", "upload_dir", "upload");
$io = CBXVirtualIo::GetInstance();
if ($bForceMD5 != true && COption::GetOptionString("main", "save_original_file_name", "N") == "Y") {
$dir_add = '';
$i = 0;
while (true) {
$dir_add = substr(md5(uniqid("", true)), 0, 3);
if (!$io->FileExists($_SERVER["DOCUMENT_ROOT"] . "/" . $upload_dir . "/" . $strSavePath . "/" . $dir_add . "/" . $strFileName)) {
break;
}
if ($i >= 25) {
$j = 0;
while (true) {
$dir_add = substr(md5(mt_rand()), 0, 3) . "/" . substr(md5(mt_rand()), 0, 3);
if (!$io->FileExists($_SERVER["DOCUMENT_ROOT"] . "/" . $upload_dir . "/" . $strSavePath . "/" . $dir_add . "/" . $strFileName)) {
break;
}
if ($j >= 25) {
$dir_add = substr(md5(mt_rand()), 0, 3) . "/" . md5(mt_rand());
break;
}
$j++;
}
break;
}
$i++;
}
if (substr($strSavePath, -1, 1) != "/") {
$strSavePath .= "/" . $dir_add;
} else {
$strSavePath .= $dir_add . "/";
}
} else {
$strFileExt = $bSkipExt == true || ($ext = GetFileExtension($strFileName)) == '' ? '' : "." . $ext;
while (true) {
if (substr($strSavePath, -1, 1) != "/") {
$strSavePath .= "/" . substr($strFileName, 0, 3);
} else {
$strSavePath .= substr($strFileName, 0, 3) . "/";
}
if (!$io->FileExists($_SERVER["DOCUMENT_ROOT"] . "/" . $upload_dir . "/" . $strSavePath . "/" . $strFileName)) {
break;
}
//try the new name
$strFileName = md5(uniqid("", true)) . $strFileExt;
}
}
$arFile["SUBDIR"] = $strSavePath;
$arFile["FILE_NAME"] = $strFileName;
$strDirName = $_SERVER["DOCUMENT_ROOT"] . "/" . $upload_dir . "/" . $strSavePath . "/";
$strDbFileNameX = $strDirName . $strFileName;
$strPhysicalFileNameX = $io->GetPhysicalName($strDbFileNameX);
CheckDirPath($strDirName);
if (is_set($arFile, "content")) {
//.........这里部分代码省略.........
示例15: resize
function resize($thumb, $size = null, $source = "game")
{
$imageMethod = "GD";
global $setting;
switch ($source) {
case 'download':
$sourcePath = $setting['sitepath'] . '/ourgames/img/';
break;
case 'avatar':
if (strstr($thumb, 'useruploads')) {
$sourcePath = $setting['sitepath'] . '/avatars/useruploads/';
} else {
$sourcePath = $setting['sitepath'] . '/avatars/';
}
break;
default:
$sourcePath = $setting['sitepath'] . '/img/';
break;
}
$cachePath = $setting['sitepath'] . '/cache/img/';
$ext = GetFileExtension($thumb);
$filename = GetFileName($thumb) . '.' . $ext;
$thumbPath = $sourcePath . $filename;
$imagickPath = '/convert/convert';
if (!file_exists($thumbPath)) {
return $setting['siteurl'] . 'templates/' . $setting['theme'] . '/skins/' . $setting['skin'] . '/images/nopic150.jpg';
}
$newthumbname = md5_file($thumbPath);
$ext = GetFileExtension($thumbPath);
if (isset($size['w'])) {
$w = $size['w'];
}
if (isset($size['h'])) {
$h = $size['h'];
}
if (!empty($w) and !empty($h)) {
$newthumbpath = $cachePath . $newthumbname . '_w' . $w . '_h' . $h . '.' . $ext;
} elseif (!empty($w)) {
$newthumbpath = $cachePath . $newthumbname . '_w' . $w . '.' . $ext;
} elseif (!empty($h)) {
$newthumbpath = $cachePath . $newthumbname . '_h' . $h . '.' . $ext;
} else {
return false;
}
if (file_exists($newthumbpath)) {
return str_replace($setting['sitepath'] . '/', $setting['siteurl'], $newthumbpath);
}
switch ($imageMethod) {
case 'IM':
list($width, $height) = getimagesize($thumbPath);
$rw = $width / $w;
$rh = $height / $h;
if ($rw > $rh) {
$nw = round($width / $rh);
$resize = $nw;
}
if ($rh > $rw) {
$nh = round($height / $rw);
$resize = "x" . $nh;
} else {
$resize = $w . "x" . $h;
}
$cmd = $setting['sitepath'] . $imagickPath . " " . $thumbPath . " -resize " . $resize . " -size " . $w . "x" . $h . " xc:transparent +swap -gravity center -composite -quality 90 " . $newthumbpath;
$c = exec($cmd, $data, $ret);
if ($ret != 0) {
return $thumb;
} else {
return str_replace($setting['sitepath'] . '/', $setting['siteurl'], $newthumbpath);
}
break;
case 'GD':
include_once "resizer.php";
$image = new SimpleImage();
if (!$image) {
return $thumbPath;
}
$image->load($thumbPath);
$image->resize($w, $h);
$image->save($newthumbpath);
return str_replace($setting['sitepath'] . '/', $setting['siteurl'], $newthumbpath);
break;
default:
return $thumbPath;
break;
}
}