olá galera tenho uma sistema que carrega fotos e envia para o banco, mais se eu fizer um upload para o banco que tenha 4 mb, ela vai com 4mb, queria um script que ao enviar a foto ela diminuisse seu tamanho para que armazenasse no banco como por ex: quando eu fizer o upload de 4mb a foto armazenar no banco como uns 200kb;
o script é esse:
// Prepara a variavel caso o formulario tenha sido postado
Question
Daniel Correia
olá galera tenho uma sistema que carrega fotos e envia para o banco, mais se eu fizer um upload para o banco que tenha 4 mb, ela vai com 4mb, queria um script que ao enviar a foto ela diminuisse seu tamanho para que armazenasse no banco como por ex: quando eu fizer o upload de 4mb a foto armazenar no banco como uns 200kb;
o script é esse:
// Prepara a variavel caso o formulario tenha sido postado
$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;
$config = array();
// Tamano maximo da imagem, em bytes
$config["tamanho"] = 1024 * 1024 * 4;
// Largura Maxima, em pixels
$config["largura"] = 4500;
// Altura Maxima, em pixels
$config["altura"] = 4500;
// Diretorio onde a imagem sera salva
$config["diretorio"] = "arquivos/";
$grava_descricao = $_POST['descricao'];
$grava_link = $_POST['link'];
// Gera um nome para a imagem e verifica se já não existe, caso exista, gera outro nome e assim sucessivamente..
// Funcao Recursiva
function nome($extensao)
{
global $config;
// Gera um nome unico para a imagem
$temp = substr(md5(uniqid(time())), 0, 10);
$imagem_nome = $temp . "." . $extensao;
// Verifica se o arquivo já existe, caso positivo, chama essa funcao novamente
if(file_exists($config["diretorio/"] . $imagem_nome))
{
$imagem_nome = nome($extensao);
}
return $imagem_nome;
}
if($arquivo)
{
$erro = array();
if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp|jpg)$", $arquivo["type"]))
{
$erro[] = "Arquivo em formato invalido! 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 maximo " . $config["tamanho"] . " bytes. Envie outro arquivo";
}
// Para verificar as dimensoes 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";
}
}
if(!sizeof($erro))
{
// Pega extensão do arquivo, o indice 1 do array conterá a extensão
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
// Gera nome único para a imagem
$imagem_nome = nome($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);
//insere nome da imagem, descrição e link no banco e imagem para pasta fotos_anuncio.
$sql = mysql_query("INSERT INTO fotos (foto, descricao, link) VALUES ('$imagem_nome','$grava_descricao','$grava_link')");
header("Location: ../paginas/cadastrar_anuncio.php");
}
}
Obrigado!!!
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.