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 . "
";
";
}
echo "Fazer Upload de Outra Imagem";
}
// 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
Postar um comentário