Ir para conteúdo

POWERED BY:

Arquivado

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

weslleysolo

Upload de imagens

Recommended Posts

Bom dia, estou desenvolvendo uma função onde serao cadastradas 05 imagens, esta dando certo até um ponto,

o codigo abaixo mostra que se a imagem existir no servidor, retorna uma mensagem de alerta! mas se o campo estiver em branco ele cadastra a imagem no_image.jpg mas nao é o que esta acontecendo....

 

quando vou no servido vejo que o endereço da imagem esta upload/ apenas, estou fazendo algo errado e nao consigo identificar...

Agradeço a ajuda:

 

if(isset($_FILES["imagem01"])){ $arquivo = $_FILES["imagem01"]; $pasta_dir = "upload/";
	 if (empty($imagem01)){ $imagem01 = "upload/no_image.jpg"; }
if (file_exists("upload/$imagem01")){ echo '<font face="Verdana" size="-1" color="#FF0000">A foto do campo <font color="#000000">Imagem 01</font> já existe no servidor!<br>Renomeie ou Remova-a!<br><a href=java script:history.go(-1)>Clique aqui para voltar</font></a>'; 
exit(); }
}
$arquivo_imagem01 = $pasta_dir . $arquivo["name"]; move_uploaded_file($arquivo["tmp_name"], $arquivo_imagem01);

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aê,eu notei alguns erros no seu script,tipo nele você não passa o valor pra variável $imagem,e sim pra $arquivo..e se você deixasse assim como está ele so iria cadastrar a imagem "no_image" uma vez ...tente assim ..

if(isset($_FILES["imagem01"])) { 
   $imagem01 = $_FILES["imagem01"]; $pasta_dir = "upload/";
 if (file_exists("upload/$imagem01")){ 
	 echo '<font face="Verdana" size="-1" color="#FF0000">A foto do campo 
	   <font color="#000000">Imagem 01</font> já existe no servidor!<br>
  Renomeie ou Remova-a!<br><a href=java script:history.go(-1)>Clique aqui para voltar</font></a>'; 
  exit(); 
  }
} else { 
$imagem01 = "upload/no_image.jpg"; 
}
$arquivo_imagem01 = $pasta_dir . $arquivo["name"]; move_uploaded_file($arquivo["tmp_name"], $arquivo_imagem01);

Compartilhar este post


Link para o post
Compartilhar em outros sites

else { 

$imagem01 = $_FILES["no_image.jpg"]; $pasta_dir = "upload/";

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, cadastra normalmente...

 

$imagem01 = $_POST["imagem01"];

$sql = "INSERT INTO dados VALUES";
$sql .= "('','$arquivo_imagem01')";
$result= mysql_query($sql);

pedacinho do script

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pensei outra maneira, porque você não sobe essa img pro servidor, e quando você for puxar os dados pra exibir, faz um if pra ve ser o campo imagem da tabela está vazio se estiver você exibe "no_image.jpg" ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já fiz isso, até q deu certo....mas talvez depois terei problemas pra exibir essa imagem referente a ID cadastrada, pq será um sistema de anuncio de carros usados...será que nao ficaria meio gambiarra?

 

..assim?:

 

if($imagem01 == "upload/"){
	echo "<img src=upload/no_image.jpg width=100px height=100px>";
}else{
	echo "<img src=$imagem01 width=100px height=100px>";}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não acho que ficaria gambiarra não..pra ser sincero eu uso assim...e em relação à ID não entendi porque você teria problemas, uma vez que a imagem é proviniente de algum loop,..

 

Abraço e feliz ano novo !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum, saquei...vou fazer...obrigado....mais uma peguntinha....

você faria assim msm?

 

if($imagem01 == "upload/"){

echo "<img src=upload/no_image.jpg width=100px height=100px>";

}else{

echo "<img src=$imagem01 width=100px height=100px>";}

 

Feliz ano novo pra você tbm...

Compartilhar este post


Link para o post
Compartilhar em outros sites

desse ultimo jeito que você citou da certo sim... + seu codigo esta muito desorganisado, poderia dizer ate q esta "feio"...

acho q você nem tentou refazer um segundo pra aprimorar...

poste o codigo completo aew pra gente dar uma arrumada nele...

 

PS: isso é so um toque, nada pro lado pessoal xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dórian Conde Langbeck

 

Obrigado pela dica amigo, e realmente eu sou superficial em PHP, nao fiz curso ainda e teimo em fazer as coisas no tranco...

 

vou postar meu codigo e ja aproveito pra fazer outra pergunta, mas primeiro o codigo:

Para Upload

if(isset($_FILES["imagem01"])){ $arquivo = $_FILES["imagem01"]; $pasta_dir = "upload/";
$arquivo_imagem01 = $pasta_dir . $arquivo["name"]; move_uploaded_file($arquivo["tmp_name"], $arquivo_imagem01);
}

Para ver se o campo esta em branco ou somente com o caminho upload/

<? if($imagem01 == "upload/" or $imagem01 == ""){
	echo "<img src=upload/no_image.jpg width=45 height=40><br>";
}else{
	echo "<img src=$imagem01 width=45 height=40><br>";}?>

 

Minha outra pergunta,...quando vou editar os dados as vezes terei que trocar a imagem, mas se eu nao altero a imagem o campo file envia em branco por servidor

Como deixar a informação gravada se no caso do campo file, nao for preenchido?

 

Vou postar o script q grava os dados da edição:

$imagem01 = $_POST["imagem01"];
$sql  = "UPDATE dados SET imagem01 = '$arquivo_imagem01' WHERE dados . `id` = '".$id."'";
$result = mysql_query ($sql) or die ("Erro na query: $sql ".mysql_error() );
é só um pedacinho do script

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara... vou te mandar um pedaço de codigo de uma galeria de fotos, claro, somente a parte de upload das fotos...

<?php
$quantidade = $_POST["qtd"];
$cods = array();
for ($x = 1; $x <= $quantidade; $x++) {
	$foto = $_FILES["foto$x"];
	if ($foto["error"] == "0") {
		$localFoto = $foto["tmp_name"];
		$codFoto = codigo();
		$format = exif_imagetype($localFoto);
		if (!$format || !($format != "1" || $format != "2" || $format != "4")) {
			unlink($localFoto);
			header("Location: ?action=error&id=500");
		} else {
			move_uploaded_file($localFoto,"$path/$codFoto");
			$cods[$x] = $codFoto;
		}
	} else {
		header("Location: ?action=error&id=502");
	}
}
$nome = $_POST["nome"];
$codGaleria = codigo();
$comando = "INSERT INTO galeria
				(codigo,nome,quantidade)
			VALUES
				('$codGaleria','$nome','$quantidade')";
mysql_query($comando);
for ($x = 1; $x <= $quantidade; $x++) {
	$foto = $_FILES["foto$x"];
	$legenda = $_POST["legenda$x"];
	$comando = "INSERT INTO fotos
					(galeria,codigo,pos,legenda)
				VALUES
					('$codGaleria','$cods[$x]','$x','$legenda')";
	mysql_query($comando);
}
?>

a função codigo é essa:

<?php
function codigo() {
	$t = localtime();
	$m = substr(microtime(),2,8);
	return $m.($t[0] + 1) * ($t[1] + 1) * ($t[2] + 1) * ($t[3] + 1) * ($t[4] + 1);
}
?>

o codigo do formulario é esse:

<table width="700" border="0" cellspacing="0" cellpadding="0" align="center">
     <form action="?action=salvargaleria" method="post" enctype="multipart/form-data" onSubmit="return (getId("nome").value == "") ? false : true">
       <tr>
         <td width="98">Nome da galeria: </td>
         <td width="602"><input name="nome" type="text" id="nome" style="width:200px;" /></td>
       </tr>
       <tr>
         <td>Quantidade:</td>
         <td><select name="qtd" id="qtd" onchange="setQtd()">
           <option value="2">2 Fotos</option>
           <option value="3">3 Fotos</option>
           <option value="4">4 Fotos</option>
           <option value="5">5 Fotos</option>
           <option value="6">6 Fotos</option>
           <option value="7">7 Fotos</option>
         </select>
         </td>
       </tr>
       <tr>
         <td colspan="2"><div id="a1" style="padding-bottom:5px; padding-top:5px">
           <table border="0" align="center" cellpadding="0" cellspacing="0">
             <tr>
               <td width="73" rowspan="2" align="center" valign="middle">Foto 1<br />
                   <span style="font-size:9px; color:#FF0000;">(principal)</span></td>
               <td width="61">Imagem:</td>
               <td width="508"><input name="foto1" type="file" id="foto1" /></td>
             </tr>
             <tr>
               <td>Legenda:</td>
               <td><textarea name="legenda1" id="legenda1" style="width:400px; height:50px"></textarea></td>
             </tr>
           </table>
         </div>
           <div id="a2" style="padding-bottom:5px; padding-top:5px">
             <table border="0" align="center" cellpadding="0" cellspacing="0">
               <tr>
                 <td width="73" rowspan="2" align="center" valign="middle">Foto 2 </td>
                 <td width="61">Imagem:</td>
                 <td width="508"><input name="foto2" type="file" id="foto2" /></td>
               </tr>
               <tr>
                 <td>Legenda:</td>
                 <td><textarea name="legenda2" id="legenda2" style="width:400px; height:50px"></textarea></td>
               </tr>
             </table>
         </div>
           <div id="a3" style="padding-bottom:5px; padding-top:5px">
             <table border="0" align="center" cellpadding="0" cellspacing="0">
               <tr>
                 <td width="73" rowspan="2" align="center" valign="middle">Foto 3 </td>
                 <td width="61">Imagem:</td>
                 <td width="508"><input name="foto3" type="file" id="foto3" /></td>
               </tr>
               <tr>
                 <td>Legenda:</td>
                 <td><textarea name="legenda3" id="legenda3" style="width:400px; height:50px"></textarea></td>
               </tr>
             </table>
         </div>
           <div id="a4" style="padding-bottom:5px; padding-top:5px">
             <table border="0" align="center" cellpadding="0" cellspacing="0">
               <tr>
                 <td width="73" rowspan="2" align="center" valign="middle">Foto 4 </td>
                 <td width="61">Imagem:</td>
                 <td width="508"><input name="foto4" type="file" id="foto4" /></td>
               </tr>
               <tr>
                 <td>Legenda:</td>
                 <td><textarea name="legenda4" id="legenda4" style="width:400px; height:50px"></textarea></td>
               </tr>
             </table>
         </div>
           <div id="a5" style="padding-bottom:5px; padding-top:5px">
             <table border="0" align="center" cellpadding="0" cellspacing="0">
               <tr>
                 <td width="73" rowspan="2" align="center" valign="middle">Foto 5 </td>
                 <td width="61">Imagem:</td>
                 <td width="508"><input name="foto5" type="file" id="foto5" /></td>
               </tr>
               <tr>
                 <td>Legenda:</td>
                 <td><textarea name="legenda5" id="legenda5" style="width:400px; height:50px"></textarea></td>
               </tr>
             </table>
         </div>
           <div id="a6" style="padding-bottom:5px; padding-top:5px">
             <table border="0" align="center" cellpadding="0" cellspacing="0">
               <tr>
                 <td width="73" rowspan="2" align="center" valign="middle">Foto 6 </td>
                 <td width="61">Imagem:</td>
                 <td width="508"><input name="foto6" type="file" id="foto6" /></td>
               </tr>
               <tr>
                 <td>Legenda:</td>
                 <td><textarea name="legenda6" id="legenda6" style="width:400px; height:50px"></textarea></td>
               </tr>
             </table>
         </div>
           <div id="a7" style="padding-bottom:5px; padding-top:5px">
             <table border="0" align="center" cellpadding="0" cellspacing="0">
               <tr>
                 <td width="73" rowspan="2" align="center" valign="middle">Foto 7</td>
                 <td width="61">Imagem:</td>
                 <td width="508"><input name="foto7" type="file" id="foto7" /></td>
               </tr>
               <tr>
                 <td>Legenda:</td>
                 <td><textarea name="legenda7" id="legenda7" style="width:400px; height:50px"></textarea></td>
               </tr>
             </table>
         </div></td>
       </tr>
       <tr>
         <td> </td>
         <td align="right"><input type="submit" name="Submit" value="Salvar galeria" /></td>
       </tr>
     </form>
     </table>

 

e a função JS setQtd() q eu uso no select la de cima:

<script language="javascript" type="text/javascript">
function setQtd() {
	qtd = getId("qtd").value
	for (x = 1; x <= 7; x++) {
		if (x <= qtd) {
			getId("a" + x).style.display = ''
		} else {
			getId("a" + x).style.display = 'none'
		}
	}
}
</script>

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.