1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

saber tamanho px de uma imagem - php

Discussão em 'Web Development' iniciada por candycane, 11 de Julho de 2008. (Respostas: 5; Visualizações: 4709)

  1. candycane

    candycane Power Member

    Boa tarde,
    é possivel eu saber o tamnho em pixels de uma imagem antes de fazer o move_upload_file?

    eu so quero permitir o envio de uma imagem se o tamnho for menor de 800px x 205px

    como é que se faz isso?

    Já vi que com o getimagesize só é possível se a imagem ja estiver sido uploada :(
     
  2. mascker

    mascker Power Member

  3. MPalhas

    MPalhas Power Member

    boas.
    se não quiseres recarregar a página tens que fazer em javascript como disse o mascker

    se isso não for problema e quiseres fazer em PHP, isso faz-se com as funções imagex e imagey

    ex:
    PHP:
    if (imagex($imagem)>800 || imagey($imagem)>205)
       
    //erro, não aceita a imagem
    não tenho a certeza se para o parametro das funções podes usar a variavel $_FILES, ou se precisas primeiro de criar a imagem com a função imagecreatefromjpeg ou imagecreatefrombmp
     
  4. candycane

    candycane Power Member

    o imagex e imagey é uma função do php? O meu compilador não aceita :\
     
  5. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Acho que é imagesx e imagesy :P
    E sim, primeiro tens de criar a imagem com um imagecreatefrom[jpeg|png|gif|bmp], porque o parâmetro que passas no images[x|y] é o "handle" da imagem criada por aquela função.
     
    Última edição: 12 de Julho de 2008
  6. m.costa

    m.costa Power Member

    A nivel de javascript suponho que pode funcionar, mas vais.te ver negro para o por a fazer load da imagem do caminho do ficheiro no input (uff), e tenho um feeling que nao vai funcionar cross-browser (isto se for sequer possivel). não pode funcionar, pois para te permitir abrir uma imagem local e tirar.lhe as dimensões significa que ia permitir a um site acesso aos ficheiros locais de um PC, que por sua vez ia ser uma enorme falta de segurança ;)

    A melhor e mais fiavel maneira de fazer isso e' a nivel de PHP, vais precisar da extensão GD instalada e de um código deste genero:

    formulario de upload:
    Código:
    <form enctype="multipart/form-data" action="upload.php" method="POST">
    <input name="imagem" type="file">
    <input type="submit" value="Upload">
    </form>
    
    upload.php
    PHP:
    $caminho_imagem $_FILES['imagem']['tmp_name'];
    $xy getimagesize($caminho_imagem);

    if (
    $xy[0] > 800 || $xy[1] > 205) {
      
    //erro 
    } else {
      
    // guardar imagem - move_uploaded_file etc etc
    }
    Não se justifica estares a usar o imagecreatefrombla() - alem que primeiro ainda tinhas de descobrir a extensão para usar a função correcta - mais a imagesx() mais a imagesy() so' para ir buscar as dimensões, e' mais simples usares a função getimagesize() que te da' logo o que precisas.
     
    Última edição: 12 de Julho de 2008

Partilhar esta Página