Skip to content

Instantly share code, notes, and snippets.

@fabiancarlos
Created May 13, 2012 09:11
Show Gist options
  • Save fabiancarlos/2687099 to your computer and use it in GitHub Desktop.
Save fabiancarlos/2687099 to your computer and use it in GitHub Desktop.
upload the image ~ Kohana 3.2 ~ FIX BUG "Kohana_Exception [ 0 ]: Not an image or invalid image:"
<?php
# protected $_path = 'media/images/uploads/produtos/';
# $produtos = new Model_Produtos;
# $time_now = new DateTime();
// validation file image
$files = Validation::factory($_FILES)
->rule('imagem', 'Upload::not_empty')
->rule('imagem', 'Upload::type', array(':value', array('jpg','jpeg','png','gif','JPG','JPEG','PNG','GIF')))
->rule('imagem', 'Upload::image');
// if file image is not empty, and just do it bob!!! =:^D
if ($files->check()){
// get the time now formated with underline
$time_now = $time_now->format('Y_m_d_H_i_s');
// delete image on the server
$img = $produtos->get_one_img($produto_id);
// percorre e deleta todas imagens
foreach ($img as $img_old) {
try {
$img_path_old = $this->_path . $img_old['img'];
unlink($img_path_old);
} catch (Exception $e) {
# ignore the excpetion
}
}
# **** FIX BUG ****
# remove espaços do nome da imagem, se não o módulo Image não funciona corretamente
# remove spaces of the image name, otherwise the Image module doesn't work correctly
$_FILES['imagem']['name'] = preg_replace('/\s+/', '', $_FILES['imagem']['name']) ;
# troca espaços por underline
Upload::$remove_spaces = TRUE;
# Upload o arquivo
Upload::save($_FILES['imagem'], $_FILES['imagem']['name'], $this->_path );
// caminho da imagem original uploaded
$img_path = $this->_path . $_FILES['imagem']['name'];
// novo nome para imagem com o tempo indexado
$img_new = $time_now . $_FILES['imagem']['name'];
// Upload, Resize and re-name the image
// re-upload the new image
Image::factory($img_path)
->resize(180, NULL)
->save($this->_path . $img_new);
// delete the image uploaded first
unlink($img_path);
$values_img['id_produto'] = $produtos->get_one_id($produto_id);
$values_img['img'] = (string) $img_new;
# delete and insert the values in the databases
$produtos->delete_produto_img($produto_id);
$produtos->insert_produto_img($values_img);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment