Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Opa! primeiro post meu aqui nesse fórum! (Nesse e em qualquer outro, rsrs).
O script envia a imagem (tamanho original) para a pasta "imagem" com nome "imagem_59.jpg" onde "59" é o id da noticia, (.gif ou jpg).
cadastra imagem com o mesmo nome no banco.
O problema é que além disso quero salvar uma imagem thumb na pasta "imagens/thumbs" com largura 150px e altura proporcional.
Script que estou usando:
formulario.php
<?php
include("funcoes.php");// Arquivo com as funções quer serão utilizadas pelo sistema.
if (@$_REQUEST['cadastrar'] == 1) {
uploadImagem();
adicionaNoticia($_REQUEST['ultimoid'],$_REQUEST['noticia'], $_FILES['imagem']['name'], $_REQUEST['titulo']);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http-~~-//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http-~~-//www.w3.org/1999/xhtml">
<head>
<script language = "JavaScript">
function cadastrarNoticia() {
document.formulario.cadastrar.value = 1;
}
</script>
</head>
<body>
<form action="admin.php" method="post" enctype="multipart/form-data" name="formulario" id="formulario">
<input name="titulo" type="text" id="titulo">
<br />
<br />
<textarea name="noticia" rows="5" id="noticia"></textarea>
<br />
<br />
<input name="imagem" type="file" id="imagem">
<input name="cadastrar" type="hidden" id="cadastrar" value="0">
<br />
<br />
<input type="submit" name="Submit2" value="Cadastrar" onClick="cadastrarNoticia()">
</form>
</body>
</html>
funcoes.php
<?php
function adicionaNoticia($ultimoid, $noticia, $imagem, $titulo) {//começo
include("config.php"); // Inclui o arquivo de configuraçao do Banco de Dados.
// Tenta conectar-se ao Banco de Dados mostrando uma mensagem de erro caso contrário.
if(!conectaBancoDados()) {
print("<center><strong>Nao foi possível estabelecer conexão com o Banco de Dados!</strong></center>");
}//Renomeio
$inicio = (imagem_);
$ultimo_id = mysql_query ("select id from noticias order by id desc limit 0,1");
$verr = mysql_fetch_assoc($ultimo_id);
$id_final = $verr['id'];
$codigo = $id_final + 1;
// Comando que será executado no Banco de Dados.
$comandojpgSql = "INSERT INTO noticias(data, noticia, titulo, imagem) VALUES(now(), '$noticia', '$titulo', '$inicio$codigo.jpg')";
$comandogifSql = "INSERT INTO noticias(data, noticia, titulo, imagem) VALUES(now(), '$noticia', '$titulo', '$inicio$codigo.gif')";
// Executa o Comando no Banco de Dados mostrando uma mensagem de erro em caso de falha.
if (($_FILES['imagem']['type'] == "image/jpeg")) {
// Move a imagem para a pasta de imagens. Mostra mensagem de erro em caso de falha.
if (mysql_db_query(banco_noticias, $comandojpgSql)) {
echo("<script language = 'javascript'> alert('Notícia inserida com sucesso!'); </script>");
}
else echo("<script language = 'javascript'> alert('Ocorreu um erro e sua notícia não foi inserida!'); </script>");
mysql_close(); // Nao obrigatoria, porém recomendado.
}
else if (($_FILES['imagem']['type'] == "image/gif")) {
// Move a imagem para a pasta de imagens. Mostra mensagem de erro em caso de falha.
if (mysql_db_query(banco_noticias, $comandogifSql)) {
echo("<script language = 'javascript'> alert('Notícia inserida com sucesso!'); </script>");
}
else echo("<script language = 'javascript'> alert('Ocorreu um erro e sua notícia não foi inserida!'); </script>");
mysql_close(); // Nao obrigatoria, porém recomendado.
}
}
} // Fim da funçao adicionaNoticia.
// Funçao para fazer o upload da imagem da notícia
function uploadImagem() {
require_once('conn.php');//requer a conexão //já está certo
// Pega a imagem enviada através do formulário. Nome temporário e verdadeiro.
@$imagem_temp= $_FILES['imagem']['tmp_name'];
@$imagem_real= $_FILES['imagem']['name'];
//renomear
$inicio = (imagem_); //o que vai no inicio do nome para tornar unico
//pegar o ultimo id da tabela, para poder colocar ele junto ao norme do arquivo.
$ultimo_id = mysql_query ("select id from noticias order by id desc limit 0,1");
$verr = mysql_fetch_assoc($ultimo_id);
$id_final = $verr['id'];
$codigo = $id_final + 1;
// O Upload só é efetuado se a imagem for do tipo gif ou jpg.
if (($_FILES['imagem']['type'] == "image/jpeg")) {
// Move a imagem para a pasta de imagens. Mostra mensagem de erro em caso de falha.
if (move_uploaded_file($imagem_temp, "img_noticias/$inicio$codigo.jpg")) {
echo("<script language = 'javascript'> alert('Imagem cadastrada com sucesso!'); </script>");
}
else echo("<script language = 'javascript'> alert('Erro ao enviar a imagem!'); </script>");
}
else if (($_FILES['imagem']['type'] == "image/gif")) {
// Move a imagem para a pasta de imagens. Mostra mensagem de erro em caso de falha.
if (move_uploaded_file($imagem_temp, "img_noticias/$inicio$codigo.gif")) {
echo("<script language = 'javascript'> alert('Imagem cadastrada com sucesso!'); </script>");
}
else echo("<script language = 'javascript'> alert('Erro ao enviar a imagem!'); </script>");
}
}// Fim da funçao uploadImagem.
?>
Somente isso funciona certinho aqui. porém quero adicionar algo para redimensionar essa imagem. (ex.: 500px largura no máximo e altura proporcional)
Estava tentando "juntar" esse outro script que funciona só que separado...
formulario2.php
<?php
if (isset($_POST['acao']) && $_POST['acao'] == 'cadastrar'){
$foto = $_FILES['foto'];
if($foto['type'] == 'image/jpeg'){
require("funcao/funcao_upload.php");
$name = md5(uniqid(rand(), true)).".jpg";
Redimensionar($foto, $foto['name'], 500, "images");
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http-~~-//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http-~~-//www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<form method="post" action="" enctype="multipart/form-data">
<label>Foto<input type="file" name="foto" /></label>
<input type="submit" value="Enviar" />
<input type="hidden" name="acao" value="cadastrar" />
</form>
<?php
echo $name = md5(uniqid(rand(), true));
?>
<body>
</body>
</html>
funcao_upload.php
funcao_upload.php
<?php
function Redimensionar($imagem, $name, $largura, $pasta){
$codigo = imagem_;
$img = imagecreatefromjpeg($imagem['tmp_name']);
$x = imagesx($img);
$y = imagesy($img);
$altura = ($largura * $y)/$x;
$nova = imagecreatetruecolor($largura, $altura);
//funcao para mesclar as duas imagens de cima (real e nova)
imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
//Enviar para a pasta
imagejpeg($nova, "$pasta/$codigo$name");
imagedestroy($img); //destrói as imagens que criamos para liberar memória
imagedestroy($nova);
return $name;
}
?>
Bem, seria isso, se alguma alma caridosa quiser dar uma força. xD
Carregando comentários...