Mostrando postagens com marcador upload de arquivos. Mostrar todas as postagens
Mostrando postagens com marcador upload de arquivos. Mostrar todas as postagens

sexta-feira, 25 de novembro de 2011

CodeIgniter - Upload de Imagem

Salve, salve!

Agora eu vou mostrar como fazer Upload de imagem usando o CodeIgniter.
Quanto a View, ela pode ter o mesmo formulário utilizado no exemplo anterior de upload de imagem com PHP.

Para fazer o upload, coloque o seguinte código dentro do Controller que receberá os dados do formulário:


$config['upload_path'] = './upload/imagem/';//Caminho onde será salvo
$config['allowed_types'] = 'gif|jpg|png';//Tipos de imagem aceito
$config['max_size'] = '2048';//Tamanho - Aqui aceitamos até 2 Mb
$config['overwrite']  = FALSE;//Não irá sobre-escrever o arquivo
$config['encrypt_name'] = TRUE;//Trocará o nome do arquivo para um HASH


$field_name1 = "photo";// Nome do campo INPUT do formulário $this->load->library('upload'); $this->upload->initialize($config); 

//Faz o upload if(!$this->upload->do_upload($field_name1)) {     $error = array('erro' => $this->upload->display_errors()); }else{     $upload_data = $this->upload->data();     $nome_do_arquivo_gravado = $upload_data['file_name'];  } //Fim - Upload da Imagem

domingo, 20 de novembro de 2011

PHP - Upload de Imagem

Salve!

Aqui eu vou mostrar uma forma "simples" de se fazer Upload de imagens com o PHP.
Neste exemplo, nós vamos gerar um nome aleatório para a imagem.

Vamos ao formulário:

<form action="upload.php" method="post" enctype="multipart/form-data">
Selecione a imagem: <input name="photo" type="file" /><br />
<input name="submit" type="submit" value="Enviar" />
</form>


Agora o arquivo "upload.php":

#Inicio da função de validação e gravação de imagem
$erro = $config = array();

// Prepara a variável do arquivo
$arquivo = isset($_FILES["photo"]) ? $_FILES["photo"] : FALSE;
if($arquivo == ""){
echo "<p>Variavel de arquivo vazio</p>";}
else{echo "<p>Variavel de arquivo OK!</p>";}
// Tamanho máximo do arquivo 50Kb - 110px x 110px(em bytes)
$config["tamanho"] = 102400;
// Largura máxima (pixels)
$config["largura"] = 500;
// Altura máxima (pixels)
$config["altura"]  = 800;

// Formulário postado... executa as ações
if($arquivo)
{
    // Verifica se o mime-type do arquivo é de imagem
    if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"]))
    {
        $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg,
bmp, gif ou png. Envie outro arquivo";
    }
    else
    {

        // Verifica tamanho do arquivo
        if($arquivo["size"] > $config["tamanho"])
        {
            $erro[] = "Arquivo em tamanho muito grande!
A imagem deve ser de no máximo " . $config["tamanho"] . " bytes.
Envie outro arquivo";
        }
     
        // Para verificar as dimensões da imagem
        $tamanhos = getimagesize($arquivo["tmp_name"]);
     
        // Verifica largura
        if($tamanhos[0] > $config["largura"])
        {
            $erro[] = "Largura da imagem não deve
ultrapassar " . $config["largura"] . " pixels";
        }

        // Verifica altura
        if($tamanhos[1] > $config["altura"])
        {
            $erro[] = "Altura da imagem não deve
ultrapassar " . $config["altura"] . " pixels";
        }
    }
 
    // Imprime as mensagens de erro
    if(sizeof($erro))
    {
        foreach($erro as $err)
        {
            echo " - " . $err . "<BR>";
        }

        echo "Erro no Upload da imgem - Reveja o tamanho e a largura";
    }

    // Verificação de dados OK, nenhum erro ocorrido, executa então o upload...
    else
    {
        // Pega extensão do arquivo
        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);

        // Gera um nome único para a imagem
        $imagem_nome = md5(uniqid(time())) . "." . $ext[1];

        // Caminho de onde a imagem ficará
        $imagem_dir = "upload/" . $imagem_nome;

        // Faz o upload da imagem
        if(!move_uploaded_file($arquivo["tmp_name"], $imagem_dir)){
}
    }
}


Duvidas? Deixe um comentário.
Proximo post será sobre Upload de imagem usando o CodeIgniter.