Ferramentas de Utilizador

Ferramentas de Site


dev_web:php:snippet:upload_imagem

Upload de imagens

Funcionalidades deste snippet

  • Upload de imagem para uma pasta pré-definida
  • Verificação do formato da imagem
  • Verificação do tamanho da imagem

Formulário

O código seguinte, é o formulário que do lado do cliente permite escolher a imagem a enviar.

<form name="upload_imagem" method="post" enctype="multipart/form-data"  action="upload.php">
 <table>
 	<tr><td><input type="file" name="image"></td></tr>
 	<tr><td><input name="Submit" type="submit" value="Upload"></td></tr>
 </table>	
</form>

Ficheiro php

O código seguinte deverá estar no ficheiro upload.php (caso seja outro nome este deve ser alterados na propriedade action do formulário) e irá fazer "tratar" a imagem já no servidor.

<?php
//Define o tamanho máximo da imagem
define ("MAX_SIZE","100");
//Define a largura máxima que a imagem pode ter
define ("LARGURA","800");	
 
 
//Verifica se o botão de upload foi pressionado
if(isset($_POST['upload'])){
	//Guarda na variavél $image o nome completo da imagem (nome+extensão)
	$image = $_FILES['file']['name'];
 
	//Verifica se existe alguma imagem para ser importada
	if($image){//Existe uma imagem para ser importada
		//Retira os elementos "/"
		$filename = stripslashes($_FILES['file']['name']);
 
		//Verifica qual a extensão do ficheiro
		$extension = getExtension($filename);
 
		//Coloca todos os caracteres da extensão com letra minuscula
		$extension = strtolower($extension);
 
		//Verifica os formatos de imagem que podem ser importados
		if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "gif") && ($extension != "png")){//Formato diferente dos permitidos 
			//mostra uma mensagem de erro
 			echo "<strong>Imagem:</strong> Este formato não pode ser importado! Utilize o formato jpg ou gif";
 		}
 		else {//Formato permitido
			//Verifica qual o tamanho da imagem seleccionada
		 	$size=filesize($_FILES['file']['tmp_name']);
                        //Guarda o tamanho da imagem seleccionada
		        $tamanho = getimagesize($_FILES['file']['tmp_name']);
 
                        $largura = $tamanho[0];//Posição 0 do array-> largura da imagem
			$altura  = $tamanho[1];//Posição 1 do array-> altura da imagem
 
 
			//Verifica se o tamanho é superior ao máximo em kb
			if ($size > MAX_SIZE*1024){//tamanho superior
			       echo 'A imagem não pode exceder o tamanho de '. MAX_SIZE .'KB';
			}
                        else if ($largura > LARGURA)
			{
			      echo 'A imagem que pretende inserir não pode exceder a largura de'. LARGURA .'PX';
			}
			else 
                        {//tamanho inferior
				//Gera um nome para a imagem
				$image_name=time().'.'.$extension;
 
				//Directoria para a qual a imagem será enviada
				$newname="fotos/".$image_name;
 
				//Efectua o upload da imagem para a directoria
				$copied = copy($_FILES['file']['tmp_name'], $newname);
 
				//Verifica se o upload foi efectuado com sucesso
				if ($copied){ //Upload bem sucessido
					echo "Upload da imagem foi efectuado com sucesso";
 				}
				else {//Upload mal sucessido
        				echo "Não foi possivél efectuar o upload da imagem";
				}
			}
		}
 	}
	else {//Não existe nenhuma imagem para ser importada 
                echo "Seleccione uma imagem";
       }
}
// Função que permite saber qual a extensão da imagem
function getExtension($str){
    $i = strrpos($str,".");
    if (!$i) return ""; 
    $l = strlen($str) - $i;
    $ext = substr($str,$i+1,$l);
    return $ext;
}	
?>
Tópico de discussão no fórum: Upload de imagem
dev_web/php/snippet/upload_imagem.txt · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)