Ir para conteúdo

Arquivado

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

lulukynha

[Resolvido] upload de arquivos

Recommended Posts

Estou com problemas.

 

Não consigo fazer o upload de arquivos. Segue o código abaixo

 

$Usid = $_GET['usid'];
$Foto = $HTTP_POST_VARS['TextFoto'];
$NomeCelula = $HTTP_POST_VARS['TextNomeCelula'];
$NomeLider = $HTTP_POST_VARS['TextNomeLider'];
$Membro1 = $HTTP_POST_VARS['TextMembro1'];
$Membro2 = $HTTP_POST_VARS['TextMembro2'];
$Membro3 = $HTTP_POST_VARS['TextMembro3'];
$Membro4 = $HTTP_POST_VARS['TextMembro4'];
$Membro5 = $HTTP_POST_VARS['TextMembro5'];
$Membro6 = $HTTP_POST_VARS['TextMembro6'];
	
$Foto = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;

if($Foto){
	echo "Não acesse esse arquivo diretamente!";
}else{
	$diretorio = "imagens/Celulas";

if (move_uploaded_file($Foto['tmp_name'], $diretorio . $Foto['name'])){
	$mySQL = new MySQL;
	$db = $mySQL->connect();	
	$Query = "INSERT INTO T_Celulas(Foto,NomeCelula,NomeLider, membro1,Membro2,Membro3,Membro4,Membro5,Membro6) 
		VALUES('" . $Foto . "','" . $NomeCelula . "','" . $NomeLider . "','" . $Membro1 . "',
							   '" . $Membro2 . "','" . $Membro3 . "','" . $Membro4 . "','" . $Membro5 . "','" . $Membro6 . "')";
	$resultado = $mySQL->sql($Query);
	if($resultado) {
		$Msg = "CadSim";
		header ("Location: sistema/sistema.php?Pag=CadCelulas&Msg=" . $Msg);
	       }
        }else{
		$Msg = "ArqNo";
		header ("Location: sistema/sistema.php?Pag=CadCelulas&Msg=" . $Msg);
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia

Dá alguma mensagem de erro ?

O que acontece ?

 

Como está seu formulário ?

Poste aqui =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu formulario é esse ai em baixo.

Ele entra no primeiro if que verifica "if(!$Foto)"

 

Meu formulario é um pouco grande.. rsr

<form name="form1" id="form1" action="../Funcoes.php?Acao=CadCelula&usid=<?echo $Usid;?>" method="POST">
<div style="width: 604px; float: left; padding-left: 10px;">
<font class="fonte">Foto:</font><br />
<input name="TextFoto" id="TextFoto" type="File" tabindex="1" size="35">
<br>
<font style="font-family: Verdana; font-size: 10px; color: #7d7d7d;">Upload da foto do líder da célula (manter proporção 1x45 pixels)</font></div>

<div style="clear: both;"></div>

<div style="width: 304px; float: left; padding-left: 10px;">
<font class="fonte">Nome da célula:</font><br />
<input name="TextNomeCelula" id="TextNomeCelula" type="text" tabindex="1" size="35" class="campos2"><br>
<font style="font-family: Verdana; font-size: 10px; color: #7d7d7d;">Cadastre o nome da célula</font></div>

<div style="width: 300px; float: left;">
<font class="fonte">Nome do líder:</font><br />
<input name="TextNomeLider" id="TextNomeLider" type="text" tabindex="1" size="35" class="campos2"><br>
<font style="font-family: Verdana; font-size: 10px; color: #7d7d7d;">Cadastre o nome do líder da célula</font></div>

<div style="clear:both;"></div>

<div style="width: 304px; float: left; padding-left: 10px; padding-top: 5px;"><font class="fonte">Nome do membro:</font><br />
<input name="TextMembro1" id="TextMembro1" type="text" tabindex="1" size="35" class="campos2"><br>
<font style="font-family: Verdana; font-size: 10px; color: #7d7d7d;">Cadastre a Leitura Bíblica do Devocional</font></div>

<div style="width: 300px; float: left; padding-top: 5px;"><font class="fonte">Nome do membro:</font><br />
<input name="TextMembro2" id="TextMembro2" type="text" tabindex="1" size="35" class="campos2"><br>
<font style="font-family: Verdana; font-size: 10px; color: #7d7d7d;">Cadastre a Leitura Bíblica do Devocional</font></div>

<div style="clear:both;"></div>

<div style="width: 304px; float: left; padding-left: 10px; padding-top: 5px;"><font class="fonte">Nome do membro:</font><br />
<input name="TextMembro3" id="TextMembro3" type="text" tabindex="1" size="35" class="campos2"><br>
<font style="font-family: Verdana; font-size: 10px; color: #7d7d7d;">Cadastre a Leitura Bíblica do Devocional</font></div>

<div style="width: 300px; float: left; padding-top: 5px;"><font class="fonte">Nome do membro:</font><br />
<input name="TextMembro4" id="TextMembro4" type="text" tabindex="1" size="35" class="campos2"><br>
<font style="font-family: Verdana; font-size: 10px; color: #7d7d7d;">Cadastre a Leitura Bíblica do Devocional</font></div>

<div style="clear:both;"></div>

<div style="width: 304px; float: left; padding-left: 10px; padding-top: 5px;"><font class="fonte">Nome do membro:</font><br />
<input name="TextMembro5" id="TextMembro5" type="text" tabindex="1" size="35" class="campos2"><br>
<font style="font-family: Verdana; font-size: 10px; color: #7d7d7d;">Cadastre a Leitura Bíblica do Devocional</font></div>

<div style="width: 300px; float: left; padding-top: 5px;"><font class="fonte">Nome do membro:</font><br />
<input name="TextMembro6" id="TextMembro6" type="text" tabindex="1" size="35" class="campos2"><br>
<font style="font-family: Verdana; font-size: 10px; color: #7d7d7d;">Cadastre a Leitura Bíblica do Devocional</font></div>

<div style="clear:both;"></div>

<div style="float: left; margin-bottom: 10px; width: 614px; text-align: center;">
<input type="submit" name="Submit" value="Cadastrar" tabindex="4" class="botao">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha:

<form name="form1" id="form1" action="../Funcoes.php?Acao=CadCelula&usid=<?echo $Usid;?>" method="POST">

Está faltando isso aqui nessa tag:

enctype="multipart/form-data"

Ficaria assim:

<form name="form1" id="form1" action="../Funcoes.php?Acao=CadCelula&usid=<?echo $Usid;?>" method="POST" enctype="multipart/form-data">

Testa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele esta caindo nesse else aqui

 

}else{
	$Msg = "ArqNo";
	header ("Location: sistema/sistema.php?Pag=CadCelulas&Msg=" . $Msg . "&usid=" . $Usid);
}

o ultimo né

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq você está pegando o nome errado do formulário, veja:

<input name="TextFoto" id="TextFoto" type="File" tabindex="1" size="35">
O nome do do objeto que busca o arquivo é TextFoto.

 

E no Php:

$Foto = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;

E aqui você chama de arquivo.

 

Só fazer assim:

$Foto = isset($_FILES['TextFoto']) ? $_FILES['TextFoto'] : FALSE;

Compartilhar este post


Link para o post
Compartilhar em outros sites

vixi agora caiu no primeiro if <_< rsrs

 

if($Foto){
	echo "Não acesse esse arquivo diretamente!";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

woeiwoei

É que sua condição está ao contrário:

if($Foto){
        echo "Não acesse esse arquivo diretamente!";
}else{
        $diretorio = "imagens/Celulas";

você ta perguntando se for verdadeiro dá o erro senão der erro, faz certo.

É assim:

if(!$Foto){
        echo "Não acesse esse arquivo diretamente!";
}else{
        $diretorio = "imagens/Celulas";

Note o ponto de exclamação antes da variável $Foto. Está verificando se tiver falso, se tiver dá o erro senão faz o resto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então.

Ai ele cai no ultimo else...

 

Coloquei como mensagem que a imagem não pode ser salva no servidor.

 

Sera que não é alguma coisa com o caminho que eu estou salvando a imagem ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao

Era o caminho que eu estava salvando a imagem.

Só que tem um problema

Não esta subindo o arquivo para o servidor e nem salvando o nome certo da imagem no banco de dador.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para pegar o nome da foto é assim:

$Foto = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
$NomeFoto = $Foto["name"]; // Aqui pega o nome

Posta seu código PHP, que você está fazendo agora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então...

A parte de salvar o nome eu ja arrumei.

 

O problema agora é que salva tudo direitinho no BD

mas não salva o arquivo no servidor.

 

Diz que salva mas nao salva.. entendeu ? rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi;

Então posta seu código para eu ver =)

 

Há e só um detalhe, essa linha você excluiu:

$Foto = $HTTP_POST_VARS['TextFoto'];

É desnecessária.

Além do que isso $HTTP_POST_VARS está ultrapassado.

Se usa $_POST no lugar. =)

 

$_POST['Campo']

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue abaixo o codigo... ja alterei as coisas que você me passou

 

$Usid 	   = $_GET['usid'];
	//$Foto 	   = $_POST['TextFoto'];
	$NomeCelula = $_POST['TextNomeCelula'];
	$NomeLider = $_POST['TextNomeLider'];
	$Membro1 = $_POST['TextMembro1'];
	$Membro2 = $_POST['TextMembro2'];
	$Membro3 = $_POST['TextMembro3'];
	$Membro4 = $_POST['TextMembro4'];
	$Membro5 = $_POST['TextMembro5'];
	$Membro6 = $_POST['TextMembro6'];
	

	$Foto = isset($_FILES['TextFoto']) ? $_FILES['TextFoto'] : FALSE;


	if(!$Foto)
	{
		echo "Não acesse esse arquivo diretamente!";
	}
	else
	{
		$diretorio = "sistema/imagens/Celulas";

		if (move_uploaded_file($Foto['tmp_name'], $diretorio . $Foto['name'])){
			$mySQL = new MySQL;
			$db = $mySQL->connect();	
			$Query = "INSERT INTO T_Celulas(Foto,NomeCelula,NomeLider, Membro1,Membro2,Membro3,Membro4,Membro5,Membro6) 
						VALUES('" . $Foto['name'] . "','" . $NomeCelula . "','" . $NomeLider . "','" . $Membro1 . "',
							   '" . $Membro2 . "','" . $Membro3 . "','" . $Membro4 . "','" . $Membro5 . "','" . $Membro6 . "')";
			$resultado = $mySQL->sql($Query);
			if($resultado) {
				$Msg = "CadSim";
				header ("Location: sistema/sistema.php?Pag=CadCelulas&Msg=" . $Msg  . "&usid=" . $Usid);
			}
		}else{
			$Msg = "ArqNo";
			header ("Location: sistema/sistema.php?Pag=CadCelulas&Msg=" . $Msg . "&usid=" . $Usid);
		}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O if:

 if (move_uploaded_file($Foto['tmp_name'], $diretorio . $Foto['name'])){
Eh desnecessário, tira ele e tenta de novo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez seja permissão, faça assim aqui:

$diretorio = "sistema/imagens/Celulas";
chmod($diretorio,0777);

Tipo, deixa sem o If mesmo, se você quiser colocar em uma variável assim:

 

$upload = move_uploaded_file($Foto['tmp_name'], $diretorio . $Foto['name']);
chmod($diretorio.$Foto["name"],0777); // E depois coloca isso

Estranho não funcionar, eu tenho um script igual ao seu =)

 

 

EDIT: Há tem outro detalhe que me esqueci, aqui:

$diretorio = "sistema/imagens/Celulas";
Você não colocou barra no final!

$diretorio = "sistema/imagens/Celulas/";

Compartilhar este post


Link para o post
Compartilhar em outros sites

$diretorio = "sistema/imagens/Celulas";

Altere a linha dessa maneira:

 

$diretorio = "sistema/imagens/Celulas/";

Caso dê erro tente desse outro jeito:

 

$diretorio = "sistema/imagens/celulas/";

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.