Ir para conteúdo
Fórum Script Brasil
  • 0

Como alterar varias imagens?


Eduardo ALexandre

Pergunta

Bom dia pessoal,

Pessoal estou tendo dificuldades para alterar 3 imagens no meu formulário, o que acontece é que quando vou alterar por exemplo, ao enviar sem selecionar a imagem, lá no banco os campos ficam vazios. Ou seja se o usuário não selecionar a imagem então elas ficarão sem alterar nada. Alguém pode dar uma ajuda? eu estava olhando este tópico http://scriptbrasil.com.br/forum/index.php...mp;#entry593437, porém não consegui implementar no meu código.

Segue o código:

Arquivo form_alterar.php

<?php

require_once("../bd/areas_bd.php");

require_once("../bd/noticias_bd.php");

require_once("../bd/subArea_bd.php");

$areas = buscaAreas();

$subAreas = buscaSubAreas();

?>

<br/>

<br/>

<?php

if(isset($_GET["idNoticia"])) { //Link para altera��o

$idNoticia = $_GET["idNoticia"];

$noticia = buscarNoticiaPorId($idNoticia);

$titulo = $noticia["titulo"];

$texto = $noticia["texto"];

$idArea = $noticia["idArea"];

$idSubArea = $noticia["idSubArea"];

$foto1 = $noticia["foto1"];

$foto2 = $noticia["foto2"];

$foto3 = $noticia["foto3"];

}

?>

<div class=st1" >

<a href="noticias.php"> Lista de noticias </a>

</div>

<div align="center" class="st2">

<form name="form" method="post" action="validaFormulario.php" onSubmit="return checaCampos(this);" enctype="multipart/form-data">

<input type="hidden" name="idNoticia" value="<?php echo $idNoticia ?>" />

<table bgcolor="#EEEEEC" align="center" >

<tr bgcolor="#CCCCCC">

<td colspan="2" ><font size="4" face="Verdana, Geneva, sans-serif">

Informações</font>

</td>

</tr >

<tr>

<td height="60" colspan="2" >Titulo</font>

<input type="text" name="titulo" size="40" value="<?php echo $titulo ?>"></td>

</tr>

<tr height="40">

<td colspan="1" align="left">

Área Site

<select name="idArea" id="idArea">

<option value="0">Escolha uma Área</option>

<?php

while($area = mysql_fetch_array($areas)) {

if($idArea==$area["idArea]) {

echo "<option value='". $area['idArea'] ."' selected>" . $area['nome'] . "</option>";

}else{

echo "<option value=". $area['idArea] ."'>" . $area['nome'] . "</option>";

}

}

?>

</select>

</td>

<td align=right">

Área Menu

<select name="idSubArea" id="idSubArea">

<option value="1">

<?php while($subArea = mysql_fetch_array($subAreas)){

if($idSubArea==$subArea["idSubArea]){

echo "<option value='". $subArea['idSubArea'] ."' selected>" . $subArea['titulo'] . "</option>";

}else{

echo "<option value=". $subArea['idSubArea] ."'>" . $subArea['titulo'] . "</option>";

}

}

?>

</option>

</select>

</td>

</tr>

<tr>

<td colspan=2" bgcolor="#CCCCCC">

<font size="4" face="Verdana, Geneva, sans-serif">

Tópico</font>

</td>

<tr>

<td colspan="2">

<textarea name="texto"><?php echo $texto ?></textarea></td>

</td>

</tr>

</tr>

<tr height="20">

<td colspan="2" bgcolor="#CCCCCC"><font size="4" face="Verdana, Geneva, sans-serif">

Imagens</font>

</td>

</tr>

<tr>

<td colspan="1">

Foto 1

<input type="file" name="Fotos[]" /></td>

<td>

<img src="../fotos2/<?php echo $foto1 ?>">

</td>

</tr>

<tr>

<td>

Foto 2

<input type="file" name="Fotos[]">

</td>

<td>

<img src="../fotos2/<?php echo $foto2 ?>">

</td>

</tr>

<tr>

<td>

Foto 3

<input type="file" name="Fotos[]">

</td>

<td>

<img src="../fotos2/<?php echo $foto3 ?>">

</td>

</tr>

<tr>

<td colspan="2" align="right"><input type="submit" name="cmdSalvar" value="Enviar"></td>

</tr>

</table>

</form>

</div>

Arquivo: validaFormulario.php

if(isset($_POST['cmdSalvar])) { //Bot�o salvar clicado

//Estraindo os valores do formul�rio HTML

$titulo = $_POST['titulo'];

$texto = $_POST['texto'];

$idNoticia = $_POST['idNoticia'];

$idSubArea = $_POST['idSubArea'];

$idArea = $_POST['idArea'];

$foto1 = "";

$foto2 = "";

$foto3 = "";

$dir=C:/wamp/www/siteV3/fotos/";

$dir_mini="C:/wamp/www/siteV3/fotos2/";

$Conta = 0;

$partes[] = "";

$NomedasFotos[] = "";

$FotosPost[] = "";

$ext = array(".jpg", ".jpeg", ".gif", ".png");

$NomesFotos[] = "";

$Fotos = isset($_FILES["Fotos]) ? $_FILES["Fotos"] : FALSE;

for($i = 0; $i < sizeof($Fotos['name']); $i++){

$Nome = $Fotos['name'][$i];

$Tamanho = $Fotos['size'][$i];

$Tipo = $Fotos['type'][$i];

$Tmpname = $Fotos['tmp_name'][$i];

if ($Nome == "" && $Nome == NULL) {

echo 'Você não enviou nada na posição' . ($i+1) . '<br/>';

if ($FotosPost[$i]!="") {$NomesFotos[] = $FotosPost[$i];}

else { $NomesFotos[] = ""; }

}

else {

preg_match ("/(.*)\.([^.]+)$/", $Nome, $partes);

if(($partes[2] != "jpg") and ($partes[2] != "jpeg") and ($partes[2] != "png") and ($partes[2] != "gif"))

{

echo 'O arquivo ' . ($i+1) . ' não é um arquivo válido.<br/>';

// Faz contagem de enviada com sucesso

$Conta++;

}

else {

// Pega extensão do arquivo

preg_match("/\.(gif|png|jpg|jpeg){1}$/i", $Nome, $ext);

// Retira a extensao do nome do arquivo

$nome_sem_extensao = $Nome;

$nome_sem_extensao = basename ($nome_sem_extensao,".gif");

$nome_sem_extensao = basename ($nome_sem_extensao,".jpeg");

$nome_sem_extensao = basename ($nome_sem_extensao,".jpg");

$nome_sem_extensao = basename ($nome_sem_extensao,".png");

// Retira espaços em branco do nome do arquivo

$nome_banco = str_replace(" ","_",$nome_sem_extensao);

//Gera um nome único para a imagem

$imagem_nome = $nome_banco . "." . md5(uniqid(time())) . "." . $ext[1];

$imagem_nome = md5(uniqid(time())) . "." . $ext[1];

//Diretórios de Gravação das imagens

$Caminho = $dir . $imagem_nome;

$Caminho_mini = $dir_mini . $imagem_nome;

if(move_uploaded_file($Tmpname, $Caminho))

{

echo 'Foto ' . ($i+1) . ' enviada.<br/>';

// Faz contagem de enviada com sucesso

$Conta++;

///cria a miniatura e faz io move_uploaded_file

//IMAGEM A SER ABERTA Nesse momento será o $Caminho pois o upload já foi feito e o arquivo temporario apagado

//CRIA UMA NOVA IMAGEM

if ($ext[1] =="jpg") { $imagem_orig = imagecreatefromjpeg($Caminho); }

else if ($ext[1] =="jpeg") { $imagem_orig = imagecreatefromjpeg($Caminho); }

else if ($ext[1] =="gif") { $imagem_orig = imagecreatefromgif($Caminho); }

else if ($ext[1] =="png") { $imagem_orig = imagecreatefrompng($Caminho); }

//LARGURA

$pontoX = imagesx($imagem_orig);

//ALTURA

$pontoY = imagesy($imagem_orig);

//DEFINE OS PARÂMETROS DA MINIATURA

$largura = 300;

$altura = ($pontoY * $largura) / $pontoX;

//CRIA O THUMBNAIL

$imagem_fin = imagecreatetruecolor($largura, $altura);

//COPIA A IMAGEM ORIGINAL PARA DENTRO

imagecopyresampled($imagem_fin, $imagem_orig, 0, 0, 0, 0, $largura+1, $altura+1, $pontoX, $pontoY);

//SALVA A IMAGEM

if ($ext[1] =="jpg") { imagejpeg($imagem_fin, $Caminho_mini ,100); }

else if ($ext[1] =="jpeg") { imagejpeg($imagem_fin, $Caminho_mini ,100); }

else if ($ext[1] =="gif") { imagegif($imagem_fin, $Caminho_mini ,100); }

else if ($ext[1] =="png") { imagepng($imagem_fin, $Caminho_mini); }

$NomesFotos[] = $imagem_nome;

//LIBERA A MEMÓRIA

imagedestroy($imagem_orig);

imagedestroy($imagem_fin);

}

else // Erro no envio

{

echo 'Não foi possível enviar a foto' . ($i+1) . '<br/>';

}

}

}

} //FIM DO FOR

$NomeTodasFotos = implode(';',$NomesFotos);

$NomedasFotos = explode(';',$NomeTodasFotos);

$foto1 = $NomedasFotos[1];

$foto2 = $NomedasFotos[2];

$foto3 = $NomedasFotos[3];

if($idNoticia !="") {

$retorno = alterarNoticia($idNoticia, $titulo, $textoFormatado,$idArea,$idSubArea,$foto1,$foto2,$foto3);

}else{

$retorno = inserirNoticia($titulo, $textoFormatado, $idArea, $idSubArea,$foto1,$foto2,$foto3);

}

if($retorno) {//A Query executou com sucesso

echo "Operacao realizada com sucesso";

}else{ //Ocorreu algum erro

echo "Ocorreu algum erro:<br/>";

echo mysql_error();

}

}

Editado por Eduardo ALexandre
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Pessoal consegui resolver usando o tópico que mencionei acima http://scriptbrasil.com.br/forum/index.php...mp;#entry593437. Porém tenho outra dúvida, sempre que não seleciono a imagem da erro de Notice: Undefined offset estava pesquisando a respeito e esse erro acontece ao tentar acessar um array vazio certo? existe uma forma de tratar esse erro?

Att Eduardo Alexandre

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia Eduardo,

Não sei se isso te ajuda mais e o que tenho feito:

if(!empty($_FILES['Nome do Campo']['name'])){
//Se for diferente de vazio ou seja o cara carregou alguma coisa no campo file eu faço o upload e o updade no banco, caso contrario não faço o update e não caio na rotina de upload.
}

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...