Ir para conteúdo

POWERED BY:

Arquivado

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

Thiago_si

[Resolvido] Input type="file" passando valor mesmo vazio

Recommended Posts

Bom Dia pessoal!

Tenho uma página aqui de edição de dados de um produto, onde o usuário pode editar o nome do produto, sua descrição, se é lançamento ou não e a imagem.

O que eu to tentando fazer é que se ele não enviar nenhuma imagem, que sem mantenha o caminho da imagem no banco de dados.

O que tá acontecendo é o seguinte: eu limitei a estrutura de upload de imagem para "entrar" nela apenas se o usuario mandar alguma imagem.

Só que não é o que está acontecendo.

Esse é o código da estrutura da edição:

if(isset($_GET['id'])){
$idProduto			= mysql_real_escape_string($_GET['id']);

$sqlBusca			= "SELECT * FROM produto WHERE idProduto = '".$idProduto."'";
$rsBusca			= mysql_query($sqlBusca) or die (mysql_error());
$arrBusca			= mysql_fetch_array($rsBusca);	

$nomeProduto		= $arrBusca['nomeProduto'];
$descProduto		= $arrBusca['descProduto'];
$lancamento			= $arrBusca['lancamento'];

if($lancamento == "S")
	$checked = 'checked="checked"';
else
	$checked = '';
}

if($_POST['button'] == "editar"){	

$idProduto		= $_POST['idProduto'];

$nomeProduto		= $_POST['nomeProduto'];
$descProduto		= $_POST['descProduto'];
$lancamento		= $_POST['lancamento'];

		if(isset($_FILES['imagemProduto'])){
				$imagemProduto 	= $_FILES['imagemProduto'];

				$pasta	= ("Produto_".$idProduto);

				delTree("imagens/fotostemp/");
				mkdir("imagens/fotostemp/",0777);

				if (!is_dir("imagens/".$pasta."/")){
					mkdir("imagens/".$pasta."/",0777);
				}

				$Destino 		= ("imagens/fotostemp/");

				$Nome  			= $imagemProduto['name'];
				$Tamanho 		= $imagemProduto['size']; 
				$Tipo    		= $imagemProduto['type']; 
				$Tmpname 		= $imagemProduto['tmp_name']; 

				// Caminho completo de destino da foto 
				$Caminho = $Destino . $Nome; 	
				$CaminhoImagem = ("painel/imagens/".$pasta."/".$Nome);
				$CaminhoThumb = ("painel/imagens/".$pasta."/thumb_".$Nome);

				// Tudo OK! Move o upload! 
				move_uploaded_file($Tmpname, $Caminho);
		}else{
			$CaminhoThumb		= $arrBusca['thumbProduto'];
			$CaminhoImagem		= $arrBusca['imagemProduto'];
		}

$sqlGravaFoto = "UPDATE produto SET
	 nomeProduto = '".$nomeProduto."',
	 descProduto = '".$descProduto."',
	 lancamento = '".$lancamento."',	 
	 thumbProduto = '".$CaminhoThumb."',
	 imagemProduto = '".$CaminhoImagem."'
 WHERE
	idProduto = ".$idProduto;
$rsGravaFoto = mysql_query($sqlGravaFoto) or die (mysql_error());
require_once("foto_trataegrava.php");			
if($rsGravaFoto){
$alerta = 'Produto editado com sucesso!';
}else{
$alerta = 'Houve um erro, tente novamente!';
}
}
?>

HTML da página:

<!DOCTYPE HTML>
<html lang="pt-br">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php include('_metatag.php'); ?>

   <link href="css/estilo.css" rel="stylesheet" type="text/css" />
   <link rel="icon" href="../favicon.ico" type="image/ico" /> 
<link rel="shortcut icon" href="../favicon.ico" /> 

   <?php include('_js.php'); ?>
   <?php
	if($rsGravaFoto){
		echo "<script language='javascript'> window.location = 'listar_produtos.php' </script>";
	}
?>

   <script language="javascript" type="text/JavaScript">
	var maxCaracteres=225;
	function soma(el) {
	qtdeRestante = (maxCaracteres - el.value.length);

			if (qtdeRestante <= 0) {
					el.value = el.value.substr(0,maxCaracteres);
					document.formCad.caracteres.value=0;
			} else {
					document.formCad.caracteres.value=qtdeRestante;
			}
	}

	function exibir() {
		document.formCad.caracteres.value=maxCaracteres;
	}
	window.onload = exibir;
</script>

</head>

<body>

<?php include('_header.php'); ?>


   <section>

   	<div class="limite">
		<section class='quad-int'>
           	<h1 class="barra-topo cinza-claro uppercase"><span>Editar Produto</span></h1>

               <form name="formEdit" method="post" action="" enctype="multipart/form-data">
                 <table width="700" border="0" cellspacing="0" cellpadding="0" class="sem-borda">
                   <tr>
                     <td width="129" align="right">Nome do Produto:</td>
                     <td width="811">
                     <input type="text" name="nomeProduto" value="<?=$nomeProduto?>" id="nomeProduto" class="form-input">
                     </td>
                   </tr>
                   <tr>
                     <td align="right">Descrição do Produto:</td>
                     <td>
                     <textarea name="descProduto" id="descProduto" maxleght="20" onKeyUp="soma(this)" onKeyChange="soma(this)" cols="45" rows="5" class="form-input" style="width:300px; height:200px;"><?=$descProduto?></textarea> Caracteres restantes: <input type="text" readonly name="caracteres" id="caracteres" class="form-input" size="6"></td>
                   </tr>
                   <tr>
                     <td align="right">Imagem do Produto: </td>
                     <td>
                     <input type="file" name="imagemProduto" id="imagemProduto" class="form-input"></td>
                   </tr>
                   <tr>
                     <td align="right">Lançamento? </td>
                     <td>
                     <input type="checkbox" value="S" <?=$checked?> name="lancamento" id="lancamento" class="form-input"></td>
                   </tr>
                   <tr>
                     <td colspan="2" align="center"><input type="hidden" name="idProduto" id="idProduto" value="<?=$idProduto?>"><input type="submit" name="button" id="button" value="editar" class="button small green"></td>
                   </tr>
                 </table>
               </form>
		</section>
       </div>

   </section>

<?php include('_footer.php'); ?>

</body>

</html>

 

Eu dei um echo em $_FILES['imagemProduto'] e está sempre ficando com o valor Array.

Já tentei até fazer

if($_FILES['imagemProduto'] != array()){

já que ambos ai exibem Array e não adiantou. Tá sempre entrando na condição.

Isso tá fazendo com que na hora de dar o update ele apague do banco o nome da imagem, invalidando o caminho.

Quem puder me ajudar ai, ficarei grato.

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

acredito que o erro está na condição abaixo:

if(isset($_FILES['imagemProduto'])){

 

verifique desta forma

if($_FILES['imagemProduto']['name']){

 

Boa sorte...

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.