Pular para o conteúdo principal

Upload de imagem sem problema

Para quem não deseja ter problemas com importação de figuras que não são figuras, execute os procedimentos em php abaixo antes de salvar a imagem.

$erro = $config = array();

// Prepara a variável do arquivo
$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;

// Tamanho máximo do arquivo (em bytes)
$config["tamanho"] = 106883;

// Largura máxima (pixels)
$config["largura"] = 350;

// Altura máxima (pixels)
$config["altura"] = 180;

// Formulário postado... executa as ações
if ($arquivo) {
// Verifica se o mime-type do arquivo é de imagem
if (!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"])) {
$erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo";
} else {
// Verifica tamanho do arquivo
if ($arquivo["size"] > $config["tamanho"]) {
$erro[] = "Arquivo em tamanho muito grande! A imagem deve ser de no máximo " . $config["tamanho"] . " bytes. Envie outro arquivo";
}
// Para verificar as dimensões da imagem
$tamanhos = getimagesize($arquivo["tmp_name"]);
// Verifica largura
if ($tamanhos[0] > $config["largura"]) {
$erro[] = "Largura da imagem não deve ultrapassar " . $config["largura"] . " pixels";
}

// Verifica altura
if ($tamanhos[1] > $config["altura"]) {
$erro[] = "Altura da imagem não deve ultrapassar " . $config["altura"] . " pixels";
}
}
// Imprime as mensagens de erro
if (sizeof($erro)) {
foreach ($erro as $err) {
echo " - " . $err . "
";
}

}

// Verificação de dados OK, nenhum erro ocorrido, executa então o upload...
else
{
// Pega extensão do arquivo
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);

// Gera um nome único para a imagem
$imagem_nome = md5(uniqid(time())) . "." . $ext[1];

// Caminho de onde a imagem ficará
$imagem_dir = "fotos/" . $imagem_nome;

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

echo "Sua foto foi enviada com sucesso!";
}
}
?>

Segue lista completa dos mime types:

* ==>> application/octet-stream

asf ==>> video/x-ms-asf

asp ==>> text/asp

asr ==>> video/x-ms-asf

asx ==>> application/x-mplayer2

asx ==>> video/x-ms-asf

asx ==>> video/x-ms-asf

au ==>> audio/basic

avi ==>> video/x-msvideo

bas ==>> text/plain

bin ==>> application/octet-stream

bmp ==>> image/bmp

c ==>> text/plain

class ==>> application/java

class ==>> application/java-byte-code

class ==>> application/octet-stream

class ==>> application/x-java-class

css ==>> text/css

dms ==>> application/octet-stream

doc ==>> application/msword

dot ==>> application/msword

exe ==>> application/octet-stream

flr ==>> x-world/x-vrml

gif ==>> image/gif

gz ==>> application/x-gzip

h ==>> text/plain

hlp ==>> application/winhlp

hta ==>> application/hta

htc ==>> text/x-component

htm ==>> text/html

html ==>> text/html

ico ==>> image/x-icon

jpe ==>> image/jpeg

jpeg ==>> image/jpeg

jpg ==>> image/jpeg

js ==>> application/x-javascript

lha ==>> application/octet-stream

lsf ==>> video/x-la-asf

lsx ==>> video/x-la-asf

lzh ==>> application/octet-stream

m3u ==>> audio/x-mpegurl

mdb ==>> application/x-msaccess

mid ==>> audio/mid

mov ==>> video/quicktime

movie ==>> video/x-sgi-movie

mp2 ==>> video/mpeg

mp3 ==>> audio/mpeg

mpa ==>> video/mpeg

mpe ==>> video/mpeg

mpeg ==>> video/mpeg

mpg ==>> video/mpeg

mpv2 ==>> video/mpeg

pdf ==>> application/pdf

pot ==>> application/vnd.ms-powerpoint

pps ==>> application/vnd.ms-powerpoint

ppt ==>> application/vnd.ms-powerpoint

qt ==>> video/quicktime

ra ==>> audio/x-pn-realaudio

ram ==>> audio/x-pn-realaudio

rmi ==>> audio/mid

rtf ==>> application/rtf

rtx ==>> text/richtext

snd ==>> audio/basic

stm ==>> text/html

tar ==>> application/x-tar

txt ==>> text/plain

vrml ==>> x-world/x-vrml

wav ==>> audio/x-wav

wrl ==>> x-world/x-vrml

wrz ==>> x-world/x-vrml

xaf ==>> x-world/x-vrml

xla ==>> application/vnd.ms-excel

xlc ==>> application/vnd.ms-excel

xlm ==>> application/vnd.ms-excel

xls ==>> application/vnd.ms-excel

xlt ==>> application/vnd.ms-excel

xlw ==>> application/vnd.ms-excel

xml ==>> application/xml

xml ==>> text/xml

xof ==>> x-world/x-vrml

zip ==>> application/x-compressed

zip ==>> application/x-zip-compressed

zip ==>> application/zip

zip ==>> multipart/x-zip

Gostaria só de acrescentar para quem estiver interessado que para limitar os arquivos aos tipos .doc e .pdf, em vez de

if (!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"])) {

deve-se utilizar o seguinte:

if (!eregi("^application\/(msword|pdf)$", $arquivo["type"])) {

Comentários

Postagens mais visitadas deste blog

Lista de órgãos emissores de RG

Para quem quiser normalizar os órgãos emissores de RG, aí vai uma lista retirada do site da FGV: SSP - Secretaria de Segurança Pública PM - Polícia Militar PC - Policia Civil CNT - Carteira Nacional de Habilitação DIC - Diretoria de Identificação Civil CTPS - Carteira de Trabaho e Previdência Social FGTS - Fundo de Garantia do Tempo de Serviço IFP - Instituto Félix Pacheco IPF - Instituto Pereira Faustino IML - Instituto Médico-Legal MTE - Ministério do Trabalho e Emprego MMA - Ministério da Marinha MAE - Ministério da Aeronáutica MEX - Ministério do Exército POF - Polícia Federal POM - Polícia Militar SES - Carteira de Estrangeiro SJS - Secretaria da Justiça e Segurança SJTS - Secretaria da Justiça do Trabalho e Segurança ZZZ - Outros (inclusive exterior)

Função php que gera número romano

/**  * Funcao que serve para transformar o numero em romano  * @param integer $integer Recebe algum numero inteiro  * @return string Retorna a string do numero romano  */ function fRomano($integer) {     $table = array('M'=>1000, 'CM'=>900, 'D'=>500, 'CD'=>400, 'C'=>100, 'XC'=>90, 'L'=>50, 'XL'=>40, 'X'=>10, 'IX'=>9, 'V'=>5, 'IV'=>4, 'I'=>1);     $return = '';     while($integer > 0) {         foreach($table as $rom=>$arb) {             if($integer >= $arb) {                 $integer -= $arb;                 $return .= $rom;                 break;             }         }     }     return $return; }