View Full Version : Ver qual a extensão da foto "uploadada"


khaluh
19-07-2007, 23:19
Viva

Coloquei no site a possibilidade de fazer upload de fotos.

// Ver qual a extensão do arquivo
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);

// Caminho onde a imagem ficará
$imagem_dir = "../img/$username" . "." . $ext ;

// Faz o upload da imagem
move_uploaded_file($arquivo["tmp_name"], $imagem_dir);


É o seguinte: ele faz o upload correctamente, só que dá erro na extensão. Ao invés de gravar com a extensão, grava com .array

Experimentei
// Ver qual a extensão do arquivo
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
echo $ext;


E escreve Array.

Qual o erro ou uma melhor forma de verificar a extensão da imagem?

CoolMaster
20-07-2007, 00:28
Nesses casos nada como fazeres um var_dump() ao array e esta feito, percebias logo a razão. O preg_match() altera o que envias como 3º argumento para um array, esse array tem os matches feitos. É só acederes a ele com o index correspondente e ja esta. 0 para o 1º, 1 para o 2º and so on..

khaluh
20-07-2007, 00:45
Nesses casos nada como fazeres um var_dump() ao array e esta feito, percebias logo a razão. O preg_match() altera o que envias como 3º argumento para um array, esse array tem os matches feitos. É só acederes a ele com o index correspondente e ja esta. 0 para o 1º, 1 para o 2º and so on..

Obrigado pela resposta, já resolvi.

Coloquei
// Ver qual a extensão do arquivo
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
// Caminho onde a imagem ficará
$imagem_dir = "../img/$username" . "." . $ext[0] ;
Obs. Desconhecia a função var_dump(). Podes explicar a sintaxe e o que faz? Procurei no http://www.php.net/ e nao encontrei

CoolMaster
20-07-2007, 09:22
http://pt.php.net/manual/en/function.var-dump.php

Tens que usar o search do php.net :-D