本文整理汇总了PHP中CUploadedFile::getExtensionName方法的典型用法代码示例。如果您正苦于以下问题:PHP CUploadedFile::getExtensionName方法的具体用法?PHP CUploadedFile::getExtensionName怎么用?PHP CUploadedFile::getExtensionName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CUploadedFile
的用法示例。
在下文中一共展示了CUploadedFile::getExtensionName方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: saveMetaDataForUploadedFile
/**
* Save file meta data to persistent storage and return id.
*
* @param \CUploadedFile $uploadedFile uploaded file.
*
* @return integer meta data identifier in persistent storage.
*/
public function saveMetaDataForUploadedFile(\CUploadedFile $uploadedFile)
{
$ext = \mb_strtolower($uploadedFile->getExtensionName(), 'UTF-8');
$realName = pathinfo($uploadedFile->getName(), PATHINFO_FILENAME);
FPM::m()->getDb()->createCommand()->insert(FPM::m()->tableName, array('extension' => $ext, 'real_name' => $realName));
return FPM::m()->getDb()->getLastInsertID();
}
示例2: saveImg
/**
* Processes the uploaded image.
* @param CUploadedFile $uploadedImg The uploaded image
* @param string $title The title (or caption) of this image (optional)
* @param string $description The detailed description of this image (optional)
* @param string $albumName The name of the album to put the image in (optional)
* @return string The ID of new uploaded image | false
*/
private function saveImg($uploadedImg, $title = '', $description = '', $albumName = '')
{
// Key
$userId = CassandraUtil::import(Yii::app()->user->getId())->__toString();
$key = $userId . '_' . CassandraUtil::uuid1();
// Path
$path = realpath(Yii::app()->params['storagePath']) . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . $userId;
if (!is_dir($path)) {
mkdir($path, 0775);
}
if (!empty($albumName)) {
$path .= DIRECTORY_SEPARATOR . $albumName;
}
if (!is_dir($path)) {
mkdir($path, 0775);
}
// Save the image information before processing the image
$data = array('storage_path' => $uploadedImg->getTempName(), 'mime_type' => $uploadedImg->getType(), 'extension' => $uploadedImg->getExtensionName(), 'user_id' => Yii::app()->user->getId());
if (!empty($title)) {
$data['title'] = $title;
}
if (!empty($description)) {
$data['description'] = $description;
}
if ($this->insert($key, $data) === false) {
$uploadedImg->clean();
return false;
}
// Render this image into different versions
$photoTypes = Setting::model()->photo_types;
// Get list of image types in JSON format. Decode it.
$photoTypes = json_decode($photoTypes['value'], true);
$img = Yii::app()->imagemod->load($data['storage_path']);
$convertedImgs = array();
foreach ($photoTypes as $type => $config) {
$img->image_convert = 'jpg';
$img->image_resize = true;
$img->image_ratio = true;
$img->image_x = $config['width'];
$img->image_y = $config['height'];
if (isset($config['suffix'])) {
$img->file_safe_name = $key . $config['suffix'] . '.jpg';
} else {
$img->file_safe_name = $key . '.jpg';
}
$img->process($path);
if (!$img->processed) {
// Delete the original image
$uploadedImg->clean();
// Delete the record in db
$this->delete($key);
// Log the error
Yii::log('Cannot resize the image ' . $data['storage_path'] . ' to ' . $path . '/' . $img->file_safe_name, 'error', 'application.modules.storage.Storage');
// Delete all converted images
foreach ($convertedImgs as $imgType => $imgPath) {
unlink($imgPath);
}
// Return false
return false;
} else {
// Remember the path of converted image
$convertedImgs[$type] = $img->file_dst_path;
}
// Update the database
$data = array('storage_path' => $convertedImgs['original'], 'mime_type' => 'image/jpeg', 'extension' => 'jpg');
unset($convertedImgs['original']);
$data = array_merge($data, $convertedImgs);
if ($this->insert($key, $data) === false) {
// Delete the original image
$uploadedImg->clean();
// Delete the record in db
$this->delete($key);
// Log the error
Yii::log('Cannot resize the image ' . $data['storage_path'] . ' to ' . $path . '/' . $img->file_safe_name, 'error', 'application.modules.storage.Storage');
// Delete all converted images
unlink($data['storage_path']);
foreach ($convertedImgs as $imgType => $imgPath) {
unlink($imgPath);
}
// Return false
return false;
}
}
// Delete the temporary image
$uploadedImg->clean();
return $key;
}
示例3: save
/**
* Saves a new image.
* @param CUploadedFile $file the uploaded image.
* @param CActiveRecord $owner the owner model.
* @param string $name the image name. Available since 1.2.0
* @param string $path the path to save the file to. Available since 1.2.1.
* @return Image the image model.
* @throws CException if saving the image fails.
*/
public function save($file, $name = null, $path = null)
{
$trx = Yii::app()->db->beginTransaction();
try {
$image = new Image();
$image->extension = strtolower($file->getExtensionName());
$image->filename = $file->getName();
$image->byteSize = $file->getSize();
$image->mimeType = $file->getType();
$image->createTime = new CDbExpression('NOW()');
if (empty($name)) {
$name = $file->getName();
$name = substr($name, 0, strrpos($name, '.'));
}
$image->name = $this->normalizeString($name);
if ($path !== null) {
$image->path = trim($path, '/');
}
if ($image->save() === false) {
throw new CException(__CLASS__ . ': Failed to save image! Record could not be saved.');
}
$path = $this->resolveImagePath($image);
if (!file_exists($path) && !$this->createDirectory($path)) {
throw new CException(__CLASS__ . ': Failed to save image! Directory could not be created.');
}
$path .= $this->resolveFileName($image);
if ($file->saveAs($path) === false) {
throw new CException(__CLASS__ . ': Failed to save image! File could not be saved.');
}
$trx->commit();
return $image;
} catch (CException $e) {
$trx->rollback();
throw $e;
}
}
示例4: setNew
/**
* Sets a new logo image by given temp file
*
* @param CUploadedFile $file
*/
public function setNew(CUploadedFile $file)
{
$this->delete();
move_uploaded_file($file->getTempName(), $this->getPath());
ImageConverter::Resize($this->getPath(), $this->getPath(), array('height' => $this->height, 'width' => 0, 'mode' => 'max', 'transparent' => $file->getExtensionName() == 'png' && ImageConverter::checkTransparent($this->getPath())));
}
示例5: validateFile
/**
* Internally validates a file object.
* @param CModel $object the object being validated
* @param string $attribute the attribute being validated
* @param CUploadedFile $file uploaded file passed to check against a set of rules
* @throws CException if failed to upload the file
*/
protected function validateFile($object, $attribute, $file)
{
if (null === $file || ($error = $file->getError()) == UPLOAD_ERR_NO_FILE) {
return $this->emptyAttribute($object, $attribute);
} elseif ($error == UPLOAD_ERR_INI_SIZE || $error == UPLOAD_ERR_FORM_SIZE || $this->maxSize !== null && $file->getSize() > $this->maxSize) {
$message = $this->tooLarge !== null ? $this->tooLarge : Yii::t('yii', 'The file "{file}" is too large. Its size cannot exceed {limit} bytes.');
$this->addError($object, $attribute, $message, array('{file}' => $file->getName(), '{limit}' => $this->getSizeLimit()));
} elseif ($error == UPLOAD_ERR_PARTIAL) {
throw new CException(Yii::t('yii', 'The file "{file}" was only partially uploaded.', array('{file}' => $file->getName())));
} elseif ($error == UPLOAD_ERR_NO_TMP_DIR) {
throw new CException(Yii::t('yii', 'Missing the temporary folder to store the uploaded file "{file}".', array('{file}' => $file->getName())));
} elseif ($error == UPLOAD_ERR_CANT_WRITE) {
throw new CException(Yii::t('yii', 'Failed to write the uploaded file "{file}" to disk.', array('{file}' => $file->getName())));
} elseif (defined('UPLOAD_ERR_EXTENSION') && $error == UPLOAD_ERR_EXTENSION) {
// available for PHP 5.2.0 or above
throw new CException(Yii::t('yii', 'A PHP extension stopped the file upload.'));
}
if ($this->minSize !== null && $file->getSize() < $this->minSize) {
$message = $this->tooSmall !== null ? $this->tooSmall : Yii::t('yii', 'The file "{file}" is too small. Its size cannot be smaller than {limit} bytes.');
$this->addError($object, $attribute, $message, array('{file}' => $file->getName(), '{limit}' => $this->minSize));
}
if ($this->types !== null) {
if (is_string($this->types)) {
$types = preg_split('/[\\s,]+/', strtolower($this->types), -1, PREG_SPLIT_NO_EMPTY);
} else {
$types = $this->types;
}
if (!in_array(strtolower($file->getExtensionName()), $types)) {
$message = $this->wrongType !== null ? $this->wrongType : Yii::t('yii', 'The file "{file}" cannot be uploaded. Only files with these extensions are allowed: {extensions}.');
$this->addError($object, $attribute, $message, array('{file}' => $file->getName(), '{extensions}' => implode(', ', $types)));
}
}
if ($this->mimeTypes !== null) {
if (function_exists('finfo_open')) {
$mimeType = false;
if ($info = finfo_open(defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME)) {
$mimeType = finfo_file($info, $file->getTempName());
}
} elseif (function_exists('mime_content_type')) {
$mimeType = mime_content_type($file->getTempName());
} else {
throw new CException(Yii::t('yii', 'In order to use MIME-type validation provided by CFileValidator fileinfo PECL extension should be installed.'));
}
if (is_string($this->mimeTypes)) {
$mimeTypes = preg_split('/[\\s,]+/', strtolower($this->mimeTypes), -1, PREG_SPLIT_NO_EMPTY);
} else {
$mimeTypes = $this->mimeTypes;
}
if ($mimeType === false || !in_array(strtolower($mimeType), $mimeTypes)) {
$message = $this->wrongMimeType !== null ? $this->wrongMimeType : Yii::t('yii', 'The file "{file}" cannot be uploaded. Only files of these MIME-types are allowed: {mimeTypes}.');
$this->addError($object, $attribute, $message, array('{file}' => $file->getName(), '{mimeTypes}' => implode(', ', $mimeTypes)));
}
}
}
示例6: validateFile
/**
* Internally validates a file object.
*
* @param CModel $object the object being validated
* @param string $attribute the attribute being validated
* @param CUploadedFile $file uploaded file passed to check against a set of rules
*/
protected function validateFile($object, $attribute, $file)
{
if (null === $file || ($error = $file->getError()) == UPLOAD_ERR_NO_FILE) {
return $this->emptyAttribute($object, $attribute);
} else {
if ($error == UPLOAD_ERR_INI_SIZE || $error == UPLOAD_ERR_FORM_SIZE || $this->maxSize !== null && $file->getSize() > $this->maxSize) {
$message = $this->tooLarge !== null ? $this->tooLarge : Yii::t('yii', 'The file "{file}" is too large. Its size cannot exceed {limit} bytes.');
$this->addError($object, $attribute, $message, array('{file}' => $file->getName(), '{limit}' => $this->getSizeLimit()));
} else {
if ($error == UPLOAD_ERR_PARTIAL) {
throw new CException(Yii::t('yii', 'The file "{file}" was only partially uploaded.', array('{file}' => $file->getName())));
} else {
if ($error == UPLOAD_ERR_NO_TMP_DIR) {
throw new CException(Yii::t('yii', 'Missing the temporary folder to store the uploaded file "{file}".', array('{file}' => $file->getName())));
} else {
if ($error == UPLOAD_ERR_CANT_WRITE) {
throw new CException(Yii::t('yii', 'Failed to write the uploaded file "{file}" to disk.', array('{file}' => $file->getName())));
} else {
if (defined('UPLOAD_ERR_EXTENSION') && $error == UPLOAD_ERR_EXTENSION) {
throw new CException(Yii::t('yii', 'File upload was stopped by extension.'));
}
}
}
}
}
}
if ($this->minSize !== null && $file->getSize() < $this->minSize) {
$message = $this->tooSmall !== null ? $this->tooSmall : Yii::t('yii', 'The file "{file}" is too small. Its size cannot be smaller than {limit} bytes.');
$this->addError($object, $attribute, $message, array('{file}' => $file->getName(), '{limit}' => $this->minSize));
}
if ($this->types !== null) {
if (is_string($this->types)) {
$types = preg_split('/[\\s,]+/', strtolower($this->types), -1, PREG_SPLIT_NO_EMPTY);
} else {
$types = $this->types;
}
if (!in_array(strtolower($file->getExtensionName()), $types)) {
$message = $this->wrongType !== null ? $this->wrongType : Yii::t('yii', 'The file "{file}" cannot be uploaded. Only files with these extensions are allowed: {extensions}.');
$this->addError($object, $attribute, $message, array('{file}' => $file->getName(), '{extensions}' => implode(', ', $types)));
}
}
}
示例7: generateUniqueName
public function generateUniqueName()
{
$fileName = basename($this->image->getName(), $this->image->getExtensionName());
return uniqid($fileName) . "." . $this->image->getExtensionName();
}
示例8: generateRandomName
/**
* Generates random name bases on product and image models
*
* @param Event $model
* @param CUploadedFile $image
* @return string
*/
public static function generateRandomName(Event $model, CUploadedFile $image)
{
return strtolower($model->id . '_' . crc32(microtime()) . '.' . $image->getExtensionName());
}
示例9: generateRandomName
/**
* Generates random name bases on product and image models
*
* @param PlayerPlaylist $model
* @param CUploadedFile $file
* @return string
*/
public static function generateRandomName(PlayerPlaylistFiles $model, CUploadedFile $file)
{
return strtolower($model->id . '_' . crc32(microtime()) . '.' . $file->getExtensionName());
}
示例10: beforeSave
protected function beforeSave()
{
if ($this->isNewRecord) {
$this->med_created = date('Y-m-d H:i:s');
if (!$this->med_row) {
throw new CDbException('Cant save the media if it does not belong to any record');
}
$sql = "SELECT IF(MAX(med_order) IS NOT NULL, MAX(med_order), 0) as max_ord FROM " . $this->tableName() . " WHERE med_row = '" . $this->med_row . "' AND med_type = '" . $this->med_type . "'";
$command = Yii::app()->db->createCommand($sql);
$result = $command->queryRow();
$this->med_order = $result['max_ord'] + 1;
}
if ($this->file) {
$this->med_type = isset($this->otherMedia) && $this->otherMedia ? $this->otherMedia : self::TYPE_PHOTO;
$fileTempName = $this->file->tempName;
list($imgWidth, $imgHeight, $type, $attr) = getimagesize($fileTempName);
if (strtolower($this->file->extensionName) == 'gif' && $imgHeight * $imgWidth > self::MAX_AVAILABLE_GIF_PIXEL_COUNT) {
$this->addError('file', 'Sorry, but GIF image is too large!');
return false;
}
$fileName = $this->generateUniqFileName();
$this->med_realname = $this->file->getName();
$this->med_filetype = $this->file->getType();
$this->med_filesize = $this->file->getSize();
$ext = $this->file->getExtensionName();
$extension = '.' . $ext;
$filePath = $this->getLocalPath();
$this->med_file = $fileName . $extension;
/** @var $imageTool \upload */
$imageTool = Yii::app()->imagemod->load($fileTempName);
$imageTool->file_new_name_body = $fileName;
$imageTool->file_new_name_ext = $ext;
$imageTool->process($filePath);
$imageDimType = null;
if ($imgHeight > $imgWidth) {
//vertical image
$imageDimType = 'vertical';
if ($imgHeight > $this->resizeHeight) {
$imageTool = $this->resizeImageTool($imageTool, $imageDimType, $this->resizeHeight);
}
} else {
//horizontal image
$imageDimType = 'horizontal';
if ($imgWidth > $this->resizeWidth) {
$imageTool = $this->resizeImageTool($imageTool, $imageDimType, $this->resizeWidth);
}
}
$imageTool->file_new_name_body = $fileName . self::SUFFIX_ORIGINAL;
$imageTool->file_new_name_ext = $ext;
$imageTool->process($filePath);
/*floorplan OR epc*/
if (isset($this->otherMedia) && $this->otherMedia) {
foreach ($this->otherMediaSizes as $suffix => $sizes) {
if ($imageDimType == 'vertical' && $imgHeight > $sizes['h']) {
$imageTool->image_resize = true;
$imageTool->image_ratio_x = true;
$imageTool->image_y = $sizes['h'];
} else {
if ($imageDimType == 'horizontal' && $imgWidth > $sizes['w']) {
$imageTool->image_resize = true;
$imageTool->image_ratio_y = true;
$imageTool->image_x = $sizes['w'];
}
}
$imageTool->file_new_name_body = $fileName . $suffix;
$imageTool->file_new_name_ext = $ext;
$imageTool->process($filePath);
}
} else {
// photograph
$croppedFilePath = '';
if (isset($this->cropFactor['w'])) {
$imageTool->image_ratio_crop = true;
$cropWidth = $this->cropFactor['w'] * $imgWidth / $this->cropFactor['width'];
$top = $this->cropFactor['y'] * $imgHeight / $this->cropFactor['height'];
$left = $this->cropFactor['x'] * $imgWidth / $this->cropFactor['width'];
$right = $imgWidth - ($left + $cropWidth);
$bottom = $imgHeight - ($top + $cropWidth);
$imageTool->image_crop = array($top, $right, $bottom, $left);
$imageTool->file_new_name_body = $fileName . '_crop';
$imageTool->file_new_name_ext = $ext;
$imageTool->process($filePath);
// Load cropped file and resize
$croppedFilePath = $filePath . '/' . $fileName . '_crop' . $extension;
$imageTool = Yii::app()->imagemod->load($croppedFilePath);
}
foreach ($this->photoCropSizes as $suffix => $sizes) {
if ($suffix != '_original') {
if ($imageDimType == 'vertical') {
//horizontal image
if (!isset($this->cropFactor['h'])) {
$imageTool->image_ratio_crop = true;
$top = $bottom = 0;
$left = $right = ($imgWidth * $sizes['h'] / $imgHeight - $sizes['w']) / 2 + 1;
$imageTool->image_crop = array($top, $right, $bottom, $left);
}
$imageTool->image_resize = true;
$imageTool->image_y = $sizes['h'];
$imageTool->image_ratio_x = true;
} else {
//.........这里部分代码省略.........