本文整理匯總了PHP中Gdn_Upload::CopyLocal方法的典型用法代碼示例。如果您正苦於以下問題:PHP Gdn_Upload::CopyLocal方法的具體用法?PHP Gdn_Upload::CopyLocal怎麽用?PHP Gdn_Upload::CopyLocal使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Gdn_Upload
的用法示例。
在下文中一共展示了Gdn_Upload::CopyLocal方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: UtilityController_Thumbnail_Create
/**
* Create and display a thumbnail of an uploaded file.
*/
public function UtilityController_Thumbnail_Create($Sender, $Args = array())
{
$MediaID = array_shift($Args);
if (!is_numeric($MediaID)) {
array_unshift($Args, $MediaID);
}
$SubPath = implode('/', $Args);
// Fix mauling of protocol:// URLs.
$SubPath = preg_replace('/:\\/{1}/', '://', $SubPath);
$Name = $SubPath;
$Parsed = Gdn_Upload::Parse($Name);
// Get actual path to the file.
$Path = Gdn_Upload::CopyLocal($SubPath);
if (!file_exists($Path)) {
throw NotFoundException('File');
}
// Figure out the dimensions of the upload.
$ImageSize = getimagesize($Path);
$SHeight = $ImageSize[1];
$SWidth = $ImageSize[0];
if (!in_array($ImageSize[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG))) {
if (is_numeric($MediaID)) {
// Fix the thumbnail information so this isn't requested again and again.
$Model = new MediaModel();
$Media = array('MediaID' => $MediaID, 'ImageWidth' => 0, 'ImageHeight' => 0, 'ThumbPath' => NULL);
$Model->Save($Media);
}
$Url = Asset('/plugins/FileUpload/images/file.png');
Redirect($Url, 301);
}
$Options = array();
$ThumbHeight = MediaModel::ThumbnailHeight();
$ThumbWidth = MediaModel::ThumbnailWidth();
if (!$ThumbHeight || $SHeight < $ThumbHeight) {
$Height = $SHeight;
$Width = $SWidth;
} else {
$Height = $ThumbHeight;
$Width = round($Height * $SWidth / $SHeight);
}
if ($ThumbWidth && $Width > $ThumbWidth) {
$Width = $ThumbWidth;
if (!$ThumbHeight) {
$Height = round($Width * $SHeight / $SWidth);
} else {
$Options['Crop'] = TRUE;
}
}
$TargetPath = "thumbnails/{$Parsed['Name']}";
$ThumbParsed = Gdn_UploadImage::SaveImageAs($Path, $TargetPath, $Height, $Width, $Options);
// Cleanup if we're using a scratch copy
if ($ThumbParsed['Type'] != '' || $Path != MediaModel::PathUploads() . '/' . $SubPath) {
@unlink($Path);
}
if (is_numeric($MediaID)) {
// Save the thumbnail information.
$Model = new MediaModel();
$Media = array('MediaID' => $MediaID, 'ThumbWidth' => $ThumbParsed['Width'], 'ThumbHeight' => $ThumbParsed['Height'], 'ThumbPath' => $ThumbParsed['SaveName']);
$Model->Save($Media);
}
$Url = $ThumbParsed['Url'];
Redirect($Url, 301);
// Gdn_FileSystem::ServeFile($TargetPath, basename($Path), '', 'inline');
}