Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Biel.

criar condições para cadastrar imagens com diferentes extensões

Recommended Posts

criar condições para cadastrar imagens com diferentes extensões
Boa tarde a todos. Direto ao ponto.
Pessoal no código abaixo gostaria de criar uma condição dizendo que só pode cadastrar
imagens com extensões png, jpeg ou gif. Qualquer arquivo que tenha outra extensão
gostaria que barrasse tipo. Essa extensão não é permitido.
<?php
$pasta = 'upload_das_imagens';

$imagem   = $_FILES['imagem']['name'];    
$tmp_name = $_FILES['imagem']['tmp_name']; 
$type = $_FILES['imagem']['type'];     

$what = getimagesize($tmp_name);

switch($what['mime'])
{
    case 'image/png':
        $img = imagecreatefrompng($tmp_name);
        break;
    case 'image/jpeg':
        $img = imagecreatefromjpeg($tmp_name);
        break;
    case 'image/gif':
        $img = imagecreatefromgif($tmp_name);
        break;
    default: die();
}

imagejpeg($pasta.'/'.$imagem);

$sql = mysql_query ("INSERT INTO tab_aprendiz (imagem) VALUES ('".$imagem."') ");
echo "Cadastro realizado com_sucesso";
}
?>

...

<form action="" method="post" name="form1" id="form1" enctype="multipart/form-data">

  <table width="294" border="0" cellpadding="5" cellspacing="5">

  <tr>
    <td width="46" height="34" align="right">imagem</td>
    <td width="218"><input type="file" name="imagem" required  value="" /></td>
  </tr>
    
    <tr>
    <td height="65" colspan="3" valign="bottom"><input type="submit" name="botaocss" value=" Cadastrar" /></td>
    </tr>

  </table>

<input type="hidden" name="MM_insert" value="form1" />
</form>

</body>
</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Biel, estou sem tempo para criar um exemplo em cima do que você fez acima. Estou enviando o meu código que envia para servidor um arquivo .dat.

$nome_temporario = $_FILES["file"]["tmp_name"];
$nome_real=$_FILES["file"]["name"];


//Array com as extensões permitidas
$extensoes_permitidas = array('.dat');

// Faz a verificação da extensão do arquivo enviado
$extensao = strrchr($_FILES['file']['name'], '.');

// Faz a validação do arquivo enviado
    if(in_array($extensao, $extensoes_permitidas) === true)
    {

        $result = Copy($nome_temporario,"DAT/$nome_real");

        if($result){
        echo "Extensão permitida. Arquivo recebido com sucesso.";
        DAT($conexao, $nr_edital, $cd_classe, $nr_prova, $nome_real);

        }else{
        echo "Extensão permitida porém o arquivo não foi enviado com sucesso.\n";
        }

    }
    else
    {
        echo 'Por favor, envie o arquivo com a seguinte extensão: dat.';
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pela sua lógica voce somente verifica se o $type é true ou false, Dica crie um vetor om os types permitidos, e use o in_array para verificar se está permitida a extensão ou não, assim você limita a somente o que está permitido e caso queria atualizar mais as frente fica mais fácil se liga +/- como faria:

<?php
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {	

$pasta = 'upload_das_imagens'; // pasta para onde vai as imagens

$imagem = $_FILES['imagem']['name'];     
$temp   = $_FILES['imagem']['tmp_name']; 
$type   = $_FILES['imagem']['type']; 
	
switch($type){
    case 'image/png':
        $img = imagecreatefrompng($temp);
        break;
    case 'image/jpeg':
        $img = imagecreatefromjpeg($temp);
        break;
    default: 
	    die();
}

$vetor_type =  array ('image/png', 'image/jpeg') ;


imagejpeg($temp, $pasta.'/'.$imagem);

if(!in_array($type, $vetor_type)){
	echo "Não é permitido cadastrar essa extensão. ";
	}

else{echo "Cadastro realizado com_sucesso ";}


$sqlCadastra = mysql_query ("INSERT INTO tab_aprendiz (imagem) VALUES ('".$imagem."') ");

}
?>

DLSeken

Enquanto eu estava escrevendo tu vai e responde a mesma coisa kkkkkkkkkkkk o/ Muito bom.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.