Estou tendo muitas dificuldades com Upload de Varias imagens.
O cadastro é uma beleza. Cadastro tambem no banco, bão de +.
Acontece que o site é um site de imobiliaria e corre o risco de o cliente querer trocar(substituir-update) uma das fotos e é ai que minha dificuldade esta.
Quando faço o update, a partir do código que criei, o update até feito certo, só que não estou conseguindo dizer o seguinte:
Quero alterar apenas a foto 3, ou a 2.
Por esse script eu tenho que alterar todas, se não, no caso de alterar apenas, por exemplo, a segunda e a quinta fotos, o script altera a primeira e a segunda.
Tem alguma saida pra isso?
Segue o meu código:
FormInsert.php
<b>Envio das fotos</b><br />
<? include("../global/conexao.php"); ?>
<?
if ($acao=="inserir") { ?>
<form action="FormInsert.php?acao=insere" method="post" enctype="multipart/form-data">
<input type="file" name="Fotos[]"><br />
<input type="file" name="Fotos[]"><br />
<input type="file" name="Fotos[]"><br />
<input type="file" name="Fotos[]"><br />
<input type="file" name="Fotos[]"><br />
<input type="submit" value="OK"/>
</form>
<? } ?>
<?
if ($acao=="insere") {
include ("Multiplos_Uploads.php");
$NomedasFotos = explode(';',$NomeTodasFotos);
print $NomedasFotos[1];
$sql_insere= mysql_query("insert into imoveiscadastrovenda (Foto, Foto2, Foto3, Foto4, Foto5)
values ('$NomedasFotos[0]','$NomedasFotos[1]','$NomedasFotos[2]','$NomedasFotos[3]', '$NomedasFotos[4]')
") or die ("Merda");
if ($sql_insere) {echo "Bão";}
else {echo "Ruim";}
}
?>
FormUpdate.php
<script>
function AbreImagemGrande(UrlPagI,NameI,Wi,He,scrolling) {
if (!scrolling) { scrolling = 'auto' }
PopImagemGrande = window.open(UrlPagI,NameI,'width='+Wi+',height='+He+',scrollbars=no,toolbar=no,location=no,status=no,menubar=no,resizable=no');
}
</script>
<? include("../global/conexao.php"); ?>
<?
if ($acao=="listar") { ?>
<b>Envio das fotos</b><br />
<form action="FormUpdate.php?acao=alterar" method="post" enctype="multipart/form-data">
<?
$sql = "Select Foto, Foto2, Foto3, Foto4, Foto5 from imoveiscadastrovenda where Id=4";
$sql1 = mysql_query($sql) or die ("Select mau feito");
$nome_das_fotos = mysql_fetch_array($sql1);
$Foto[1] = $nome_das_fotos['Foto'];
$Foto[2] = $nome_das_fotos['Foto2'];
$Foto[3] = $nome_das_fotos['Foto3'];
$Foto[4] = $nome_das_fotos['Foto4'];
$Foto[5] = $nome_das_fotos['Foto5'];
$endereco_mini="teste_upload/mini/";
$endereco_normal="teste_upload/normal/";
for ($i=1; $i<6;$i++) {
$foto_mini = $endereco_mini.$Foto[$i];
$foto_normal = $endereco_normal.$Foto[$i];
//aqui ele vai ver se existe alguma coisa escrita no campo foto_receita na tabela
if($Foto[$i]==""){
$Fotografia = "<font color=#DEE9EF size=2 face=verdana,arial, Helvetica, sans-serif><strong>Sem foto1</strong></font>";
}
else {
//se existir um valor no campo na tabela ele testa se a foto esxiste 'fisicamente' na pasta
if(file_exists($foto_mini)){
if(file_exists($foto_normal)){
//se existir ele monta a exibição da foto e coloca numa variavel $foto2
$Fotografia = "<img src=$foto_mini border=0 height=40>";
list($width, $height) = getimagesize($foto_normal);
$Fotografia = "<a href=java script:AbreImagemGrande('ImoveisVenda_Conteudo_Con.php?id=$Id','ImpNot','$width','$height')>$Fotografia</a>";
}
else {
//se tiver um valor na tabela, mas a foto não existir na pasta a variavel fica setada como sem foto
$Fotografia = "<font color=#DEE9EF size=2 face=verdana,arial, Helvetica, sans-serif><strong>Sem foto2</strong></font>";
}
}
else{
//se tiver um valor na tabela, mas a foto não existir na pasta a variavel fica setada como sem foto
$Fotografia = "<font color=#DEE9EF size=2 face=verdana,arial, Helvetica, sans-serif><strong>Sem foto3</strong></font>";
}
}
echo "
<input type='file' name='Fotos[]'>
$Fotografia<br>
";
}//Fimdo for
?>
<input type="submit" value="OK"/>
</form>
<? } ?>
<?
if ($acao=="alterar") {
include ("Multiplos_Uploads.php");
$NomedasFotos = explode(';',$NomeTodasFotos);
$sql_insere= mysql_query("update imoveiscadastrovenda set Foto='$NomedasFotos[0]', Foto2='$NomedasFotos[1]', Foto3='$NomedasFotos[2]', Foto4='$NomedasFotos[3]', Foto5='$NomedasFotos[4]' where id=4");
if ($sql_insere) {echo "Bão";}
else {echo "Ruim";}
}
?>
Multiplos_Uploads.php
<?
$dir="teste_upload/normal/";
$dir_mini="teste_upload/mini/";
$Fotos = $_FILES['Fotos'];
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) {
echo 'Você não enviou nada na posição' . ($i+1) . '<br/>';
}
else {
ereg ("(.*)\.([^.]+)$", $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 = 150;
$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);
?>
Pergunta
Carlos Rocha
Ola pessoal.
Estou tendo muitas dificuldades com Upload de Varias imagens.
O cadastro é uma beleza. Cadastro tambem no banco, bão de +.
Acontece que o site é um site de imobiliaria e corre o risco de o cliente querer trocar(substituir-update) uma das fotos e é ai que minha dificuldade esta.
Quando faço o update, a partir do código que criei, o update até feito certo, só que não estou conseguindo dizer o seguinte:
Quero alterar apenas a foto 3, ou a 2.
Por esse script eu tenho que alterar todas, se não, no caso de alterar apenas, por exemplo, a segunda e a quinta fotos, o script altera a primeira e a segunda.
Tem alguma saida pra isso?
Segue o meu código:
FormInsert.php
FormUpdate.php Multiplos_Uploads.phpLink para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
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.