<?php
if (!function_exists("uploadImage")) {
/**
* Fazer upload de imagens
* @param $input String nome do input do arquivo
* @param string $size tamanho maxímo do Arquivo.. Ex: 5M, 10G ...
* @param array $pixels enviar array com width e height permitdo Ex: [199,100]
* @param array $mimes enviar array com os mimetype Ex: ['image/png', 'image/gif']
* @return String|array retorna nome do arquivo ou array com erros
*/
function uploadImage($input, $size = "5M", $pixels = null, $mimes = ['image/png', 'image/gif', 'image/jpeg', 'image/jpg']){
$Config = getConfig("upload");
$storage = new \Upload\Storage\FileSystem(ROOT_PATH . $Config['image']);
$file = new \Upload\File($input, $storage);
$file->setName(\System\Libraries\UUID::v4() . "-" . ramdonCode(6));
$Validations = [];
$Validations[] = new \Upload\Validation\Mimetype($mimes);
$Validations[] = new \Upload\Validation\Size($size);
if (!is_null($pixels) && is_array($pixels))
$Validations[] = new \Upload\Validation\Dimensions($pixels[0], $pixels[1]);
$file->addValidations($Validations);
try {
$file->upload();
return $file->getNameWithExtension();
} catch (\Exception $e) {
return $file->getErrors();
}
}
}
if (!function_exists("imageCache")) {
/**
* Gerar imagem de cache
* @param $filename
* @param $width
* @param $height
* @return string
*/
function imageCache($filename, $width, $height){
$Config = getConfig('upload');
$filename = str_replace(getConfig('base_url'), "/", $filename);
$filename = str_replace($Config['image'], "", $filename);
if (!is_file(ROOT_PATH. $Config['image'] . $filename)) {
return $filename;
}
$extension = pathinfo($filename, PATHINFO_EXTENSION);
$image_old = $filename;
$image_new = utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.' . $extension;
if (!is_file(ROOT_PATH. getConfig('cache_image') . $image_new) || (filectime(ROOT_PATH. $Config['image'] . $image_old) > filectime(ROOT_PATH. getConfig('cache_image') . $image_new))) {
list($width_orig, $height_orig, $image_type) = getimagesize(ROOT_PATH. $Config['image'] . $image_old);
if (!in_array($image_type, array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF))) {
return ROOT_PATH. $Config['image'] . $image_old;
}
$path = '';
$directories = explode('/', dirname($image_new));
foreach ($directories as $directory) {
$path = $path . '/' . $directory;
if (!is_dir(ROOT_PATH. getConfig('cache_image') . $path)) {
@mkdir(ROOT_PATH. getConfig('cache_image') . $path, 0777);
}
}
if ($width_orig != $width || $height_orig != $height) {
$image = new \System\Libraries\Images(ROOT_PATH. $Config['image'] . $image_old);
$image->resize($width, $height);
$image->save(ROOT_PATH. getConfig('cache_image'). $image_new);
} else {
copy(ROOT_PATH. $Config['image'] . $image_old, ROOT_PATH. getConfig('cache_image') . $image_new);
}
}
$image_new = str_replace(' ', '%20', $image_new);
return getConfig('cache_image').$image_new;
}
}
|