Jump to content


Photo

Formulário + Upload


  • Faça o login para participar
1 reply to this topic

#1 eduardo_

eduardo_

    Turista

  • Usuários
  • 56 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 06/12/2005, 20:48

Fiz um script em php que faz upload de imagens.
Ele ficou assim:

<?

if ($_FILES["arquivo"]["error"] == UPLOAD_ERR_FORM_SIZE) {
    echo "Erro. O tamanho de seu arquivo ultrapassa o limite estipulado! Volte e envie uma foto menor que 200kb.";
exit;
}

$arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;

if (!$arquivo) {
    echo "Não acesse esse arquivo diretamente!";
}
else {
    $diretorio = "./upload/";

    if (move_uploaded_file($arquivo['tmp_name'], $diretorio . $arquivo['name'])) {
        echo ".";
    }
    else {
        echo "Erro ao enviar seu arquivo!";
    }
}


?>


Porém, quero limitar envio de apenas imagens em JPG.
Eu deixei assim no início do código, porém dá erro. Pois com qualquer arquivo ele "reprova" e aparece a mensagem de erro. O que estaria errado?

if ($_FILES['arquivo']['type'] != "jpg") {
    echo "O arquivo enviado por você não é uma imagem JPG! Envie outro!";
}


Se alguém puder me ajudar, ficarei grato.

#2 rEd nEcK *

rEd nEcK *

    |̲̅<̲̅Θ̲̅>̲̅|

  • Usuários
  • 164 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 07/12/2005, 00:03

Acontece o seguinte.... a variavel type do FILES nao retorna jpg/png/etc

Ele retorna o mime-type da imagem, para validar tu pode fazer assim:

<?php

function CheckType(){
if( preg_match("#image\/(png|jpeg|jpg|bmp|gif|pjpeg)#i",$_FILES["arquivo"]["type"]) ){
  return true;
}else{
  return false;
}
}

?>


Isso nada mais é doque uma Er que valida o mime-type, da para você tirar e colocar o que quiser...

So lembrando, o mime-type nem sempre é image/tipo, no caso do jpg a microsoft chama de image/jpeg :D

[]'s
~/ ArrastoMemo.Com - Porque ganhar não é tudo, tem que humilhar o adversário /~




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq