Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wdc_black_

[Resolvido] Upload de varias fotos

Recommended Posts

Galera consegui na internet um script bem completo de upload de imagem, mas to quebrando a cabeça pra fazer upload de mais de 1 imagem...

teriam como me da uma luz ? hehehehe aki ta o script, abraço

 

Página

<?
include ("verifica.php");
include ("config.php");

?>
 <form id="form1" name="form1" method="post" action="funcoes/impressoras.php" enctype="multipart/form-data">
      		  <label></label>
                    <table width="70%" border="0" cellpadding="8" cellspacing="3">
                      <tr>
                        <td class='top-cont'><span style='color:#e77817; font-weight:bold'>Impressoras</span></td>
                      </tr>                      
                      <tr>
                        <td><strong>Texto:</strong></td>
                      </tr>
                      <tr>
                        <td align="center"><label>
 						 <?
                        $sql = mysql_query("SELECT * FROM impressoras ");
						while($linha = mysql_fetch_array($sql)){
							$texto = $linha['texto'];
						}
						?>
                          <textarea name="texto" id="texto" style="width:100%;" rows="6"><? echo $texto ?></textarea>
                        </label></td>
                      </tr>
						<tr>
                        <td><Br /><Br /><Br /><strong>Deseja alterar a foto?</strong></td>
                      </tr>
                    </table>
              <table width="70%" border="0" cellspacing="0" cellpadding="0">
                          <tr>
                            <td width="20%"><input type="radio" name="enviar_imagem" id="enviar_imagem" onclick="document.form1.arquivo.disabled=false" value="sim" />
                          <strong>SIM   </strong>
                        <input type="radio" name="enviar_imagem" id="enviar_imagem"  onclick="document.form1.arquivo.disabled=true"  value="nao" checked="checked" />
                          <strong>NÃO</strong><br /><br />
                            <input name="arquivo" type="file" id="arquivo" size="20" disabled="disabled" />
							<?
                            $sql = mysql_query("SELECT * FROM impressoras ");
                            while($linha = mysql_fetch_array($sql)){
                                $foto = $linha['foto'];
                            }
                            ?>
                          <td><img src='fotos/<? echo $foto ?>' align='middle' border='0' width="200" height="200"></td>
                          </tr>
                        </table>
				<table width='70%' border='0' cellspacing='2' cellpadding='0'>
                     <tr>
                        <td><br /><input type="submit" name="button" id="button" value="Salvar Alterações" /></td>
                      </tr> 
                </table>
                </form>

Função de upload

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<?
include "../config.php";
$enviar_imagem = $_POST['enviar_imagem'];
$texto = $_POST['texto'];

if($enviar_imagem == "sim"){

	$sql_alt = mysql_query("SELECT * FROM impressoras");
	while($linha = mysql_fetch_array($sql_alt)){
		$foto_db = $linha['foto'];
	}
	
	
	$foto = $_FILES['arquivo']['name'];
	
	$foto = str_replace(" ", "_", $foto);
	$foto = str_replace("ã", "a", $foto);
	$foto = str_replace("á", "a", $foto);
	$foto = str_replace("à", "a", $foto);
	$foto = str_replace("é", "e", $foto);
	$foto = str_replace("ê", "e", $foto);
	$foto = str_replace("è", "e", $foto);
	$foto = str_replace("í", "i", $foto);
	$foto = str_replace("ì", "i", $foto);
	$foto = str_replace("ó", "o", $foto);
	$foto = str_replace("õ", "o", $foto);
	$foto = str_replace("ç", "c", $foto);

	$foto = strtolower($foto);
	
	if(!eregi("^image\/(jpeg|png|gif|pjpeg|jpg)$", $_FILES['arquivo']['type'])){
		
		echo "
		<META HTTP-EQUIV=REFRESH CONTENT='0; URL=admin.php?pag=impressoras'>
		<script type=\"text/javascript\">
		alert(\"Formato inválido\");
		</script>
		";
		
	}else{
		
		if(file_exists("../fotos/$foto")){
			$a = 1;
			while(file_exists("../fotos/[$a]$foto")){
				$a++;
			}
			
			$foto = "[".$a."]".$foto;
			
		}
		
		if(!move_uploaded_file($_FILES['arquivo']['tmp_name'], "../fotos/".$foto)){
			
			echo "
		<META HTTP-EQUIV=REFRESH CONTENT='0; URL=admin.php?pag=impressoras'>
		<script type=\"text/javascript\">
		alert(\"Erro ao enviar o arquivo.\");
		</script>
		";
			
		}
	
	}		
		$sql = mysql_query("UPDATE impressoras SET foto='$foto', texto='$texto'") or die(mysql_error());
		echo "<meta http-equiv='Refresh' content='0; url=../admin.php?pag=impressoras' />";
		
}else{
		$sql = mysql_query("UPDATE impressoras SET texto='$texto'") or die(mysql_error());
		echo "<meta http-equiv='Refresh' content='0; url=../admin.php?pag=impressoras' />";

}
	
?>

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

hummm, bem legal msm....

mas pra mim eu teria ke aplicar akilo nesse meu script, mas fica bem complicado pq sei muito pko ainda :/

keria uma solucao em cima desse meu script...

vou esperar a resposta de outra pessoa se nao tento adaptar esse teu modo ;)

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você está esperando que alguém faça a adaptação no seu script acho que não vai conseguir não... Dá uma olhada no tutorial q o Beraldo recomendou e tente implementar você mesmo, o importante pra nós é que você aprenda, não que consiga fazer a coisa funcionar.. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

a lógica da coisa hehehe

 

Foi justamente isso que eu escrevi no meu tutorial.

Lógica é lógica, é adaptável a qualquer sistema. Não existe uma lógica específica para um determinado script.

 

Sugiro que tente fazer e poste as dúvidas, se houver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

heeheheheh isso eu entendi...

é que eu n to conseguindo ter ideia da logica pra fazer isso...

queria só uma ideia pra mim pode aproveita meu codigo...

a implementação eu vou fazer, quero só a ideia, pq aki n ta saindo nda que preste :)

vlw :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

A partir desta linha, tudo ficará dentro de um loop:

 

$foto = $_FILES['arquivo']['name'];

 

Porém, $_FILES['arquivo'] será um array. Você pode atribuir o valor corrente a uma variável interna do loop

 

$fotos = $_FILES['arquivo'];
$total= count( $fotos );

for ( $i = 0; $i < $total; $i++ )
{
   $foto = $fotos[$i];
   // a partir daqui você faz as verificações e o  envio da imagem
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm, entendi...

tem só 1 ´porem...

no caso a pessoa vai ter possibilidade de dar upload no caso em 4 imagens.

mas vamos supor que ela queria dar upload apenas na foto 1 e na foto 2, as outras deverão ficar iguais...

na pagina de upload tem a opcao de sim ou nao nos box...

como eu poderia botar um controle, pra saber qual foi selecionado , pra dar upload na foto certa...

^^ :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehehehe ta dificil de eu entende :/

vo tenta explica de outro modo qual é minha duvida...

por exemplo:

Imagem Postada

 

esse form me manda 4 variaveis com 4 valores ai eu testo, se for = a "sim" eu faço o upload da imagem...

if($enviar_imagem == "sim")

no caso serão 4 variaveis

$enviar_imagem
$enviar_imagem2
$enviar_imagem3
$enviar_imagem4

eu queria saber como faço pra fazer para gravar n banco de dados, sem que grave um campo em branco se no caso a pessoa escolheu "não"

 

se eu colocar isso aki

$sql = mysql_query("UPDATE impressoras SET foto='$foto', foto2='$foto2', foto3='$foto3', foto4='$foto4'") or die(mysql_error());
e a pessoa selecionar "não" na foto 3 por ex.

ela vai grava no banco de dados um valore em branco...

 

como eu poderia fazer esse controle?? pra saber qual foi escolhido "sim" pra gravar no bd certinho =]

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

VocÊ cria o início da SQL fora dos IF's e concatena a string nas condicionais. Por exemplo

 

$sql = "UPDATE tabela SET ";

if ( $foto1 == 'sim' )
    $sql .= " foto1 = '" . $imagem1 . "'";

O interessante seria fazer isso com loop, usando arrays, não quatro variáveis. Imagine se um dia quiser usar mais que 4 fotos. Terá de mudar o script e o banco de dados. Aliás, reveja essa modelagem de banco de dados. Se precisar de mais fotos, terá muita dor de cabeça.

 

Uma dica:

http://www.rberaldo.com.br/blog/2009/05/15/usando-campos-multivalorados/

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz assim

$sql = mysql_query("UPDATE empresa SET ");

if($enviar_imagem == "sim") {
    $sql .= " foto1 = '$foto'";
}	

e assim

$sql = mysql_query("UPDATE empresa SET ");

if($enviar_imagem == "sim") {
    $sql .= " foto1 = '" . $foto . "'";
}	

e não funcionou :/

q q pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você só pode usar mysql_query() DEPOIS de gerar a string com o comando SQL completo. Ou seja, $sql será uma string. Depois de todos os if's vocÊ executará mysql_Query(), passando $sql como parÂmetro

 

$sql = "UPDATE empresa SET ";


if($enviar_imagem == "sim") {
    $sql .= " foto1 = '" . $foto . "'";
}

// demais IF's

$exec = mysql_query( $sql );

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta bombando a coisa aki beraldo :D

vlw msm pela ajuda veio...

consegui faze tudo o que eu queria...

agora vou estudar essa parte de arrays , pra n passa tanto trabalho da proxima vez que precisar de algo do tipo :P

problema resolvido =]

muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.