Created
October 3, 2012 00:26
-
-
Save danielalvarenga/3824194 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<meta charset=utf-8" /> | |
<title><?php if(isset($title)) echo $title; else echo 'SuperPI';?></title> | |
<link rel="stylesheet" type="text/css" href="../jquery-file-upload/css/jquery.fileupload-ui.css" /> | |
<script type="text/javascript" src="https//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> | |
<script type="text/javascript" src="../jquery-file-upload/js/vendor/jquery.ui.widget.js"></script> | |
<script type="text/javascript" src="../jquery-file-upload/js/jquery.iframe-transport.js"></script> | |
<script type="text/javascript" src="../jquery-file-upload/js/jquery.fileupload.js"></script> | |
<script type="text/javascript"> | |
$('#fileupload').fileupload({ | |
submit: function (e, data) { | |
}, | |
stop : function(e, data) { | |
window.location='<?php echo site_url(uri_string().'/save_photo'); ?>'; | |
$('#progress').slideUp('slow').remove(); | |
$('#upload_result').html('<?php echo msg('info', anchor(uri_string(), " <strong>'+items_uploaded+' </strong>" . lang('portfolio_nr_files_uploaded') . ' ' . lang('portfolio_click_to_see_changes'))) ; ?>').slideDown('slow'); //configure nesta linha a msg no final do upload | |
items_uploaded = 0; | |
}, | |
sequentialUploads: true, | |
acceptFileTypes : '/(\.|\/)(bmp|jpeg|jpg|png)$/i', | |
dataType: 'json', | |
progressall: function (e, data) { | |
var progress = parseInt(data.loaded / data.total * 100, 10); | |
$('#progress .bar').css( | |
'width', | |
progress + '%' | |
); | |
}, | |
done: function (e, data) { | |
items_uploaded++; | |
} | |
}); | |
</script> | |
</head> | |
<body> | |
<input id="fileupload" type="file" name="Filedata" data-url="<?php echo site_url('galeria/save_photo'); ?>" multiple /> | |
<div id="progress" class="progress progress-striped active"> | |
<div class="bar" style="width: 0;"></div> | |
</div> | |
<div id="upload_result"></div> | |
<hr /> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public function save_photo($item_id = 0, $redirect = '') | |
{ | |
// aqui vc faz o upload normal, com a classe upload do CodeIgniter | |
// É passado o $_FILES['Filedata'] | |
//parametriza as preferências | |
$config['upload_path'] = './arquivos/galeria'; //Caminho onde será salvo | |
$config['allowed_types'] = 'jpg|jpeg|png'; //Tipos de imagem aceito | |
$config['file_name'] = 'imagem'; // Nome da imagem que será salva | |
$config['max_size'] = '5120'; // tamanho máximo - zero é ilimitado | |
$config['overwrite'] = FALSE; // Não irá sobre-escrever um arquivo existente e incrementará um valor no nome do novo arquivo | |
$this->load->library("upload", $config); // carrega biblioteca | |
$campo = "Filedata"; //Nome do campo definido no formulário. Se oculto, o padrão é userfile | |
if ($this->upload->do_upload($campo)) { | |
//reduz tamanho da imagens | |
$config["image_library"] = "gd2"; | |
$config["source_image"] = $config["upload_path"] . "/" . $this->upload->file_name; // local da imagem a ser utilizada do servidor | |
$config['maintain_ratio'] = TRUE; | |
$config["width"] = 1600; // largura máxima - zero é ilimitado | |
$config["height"] = 1200; // altura máxima - zero é ilimitado | |
$config["master_dim"] = 'auto'; | |
$this->image_lib->initialize($config); // carrega biblioteca | |
if (!$this->image_lib->resize()){ // redimenciona imagem | |
$dados['erros'][] = $this->upload->display_errors(); // retorna a mensagem de erro | |
} | |
$this->image_lib->clear(); | |
//cria miniatura | |
$config["image_library"] = "gd2"; | |
$config["source_image"] = $config["upload_path"] . "/" . $this->upload->file_name; // local da imagem a ser utilizada do servidor | |
$config['create_thumb'] = TRUE; // coloca "_thumb" no final do nome da miniatura | |
$config ['new_image'] = './arquivos/galeria/miniaturas'; // local a ser salva a miniatura | |
$config['maintain_ratio'] = TRUE; | |
$config["width"] = 160; // largura máxima - zero é ilimitado | |
$config["height"] = 120; // altura máxima - zero é ilimitado | |
$config["master_dim"] = 'auto'; | |
$this->image_lib->initialize($config); // carrega biblioteca | |
if (!$this->image_lib->resize()){ // redimenciona imagem | |
$dados['erros'][] = $this->upload->display_errors(); // retorna a mensagem de erro | |
} | |
$this->image_lib->clear(); | |
} else { | |
$dados['erros'][] = $this->upload->display_errors(); // retorna a mensagem de erro | |
} | |
// vc precisa retornar um json + ou - assim: | |
$this->output->enable_profiler(FALSE)->set_output(json_encode( | |
array('status' => $res ? TRUE : FALSE, | |
'message' => 'ok', | |
'name' => 'arquivo'))); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment