msgbartop
Lógica na Cabeça
msgbarbottom

Descobrindo a extensão de um arquivo com PHP

24 de abril de 2010

Precisei fazer isso quando estava renomeando os arquivos feitos via upload no Zend Framework para o id do banco de dados, o algoritmo é simples e não tem nenhum segredo:

<?php

header ('Content-type: text/html; charset=utf-8');

class Utils
{
	/**
	 * Retorna a extensão do arquivo indepedente do nome.
	 *
	 * @param $file
	 * @author Wellington Rocha
	 * @return $extensao
	 */

	public static function getExtension ($file)
	{
		if (!preg_match("/(\.(jpg|jpeg|png|gif|pdf))$/", $file, $match))
			throw new Exception('Não foi possível identificar o formato do seu arquivo !');					

		return $match[0];
	}
}

$file = 'uploads/fotos/--0090wellington.na-balada.png';

$extension = Utils::getExtension($file);

echo "O Formato do arquivo '{$file}' é = ". $extension;

echo '<pre>';
	var_dump(pathinfo($file));
echo '</pre>';

Fiz um post porque um amigo Flasheiro estava com o mesmo problema, daí eu passei essa lógica para ele e resolveu :D

* Corrigi o algoritmo conforme a dica do @Lucas Fernando Amorim
* Não me escutem e usem a função nativa do php, pathinfo. Obrigado Alexandre.Gaigalas.Net

Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Twitter
  • Rec6
  • RSS

Tags:

5 Comentários

  1. |

    Parabéns, mas o código está um pouco redundante.

    http://codepad.org/d3AR2kKv

    ResponderResponder
  2. |

    Perdão, segue correção: http://codepad.org/YU6kh7Bw

    ResponderResponder
  3. |

    Rapaz, tem uma função nativa pra isso no PHP:

    http://codepad.org/VDdncPvf

    ResponderResponder
  4. |

    @Alexandre:

    Acabei de testar o path info e funcionou numa boa, com certeza é a melhor solução =D.

    Valeu !

    ResponderResponder
  5. |

    @Lucas Fernando Amorim:

    Ficou menos redundante, mudei o algoritmo para a sua correção.

    ResponderResponder

Deixe um comentário