Ir para conteúdo

POWERED BY:

Arquivado

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

Chaparro

[Resolvido] Erro com Upload de imagens no Banco

Recommended Posts

Boa tarde, estou com o seguinte erro...

Tenho um pequeno formulário no qual ele guarda todas as informações no banco de dados... O modo de inserção está correto, pois todos os dados menos a imagem está inserindo corretamente no banco, ai que acontece que o caminho da imagem ao inves de salvar na pasta e no banco o que eu quero salvar ele salva dentro da pasta temp um arquivo C:\WINDOWS\Temp\php43C3.tmp e quando entro nessa pasta não existe esse arquivo...

Eu preciso que ele salve a imagem que eu quero subir para a pasta correta... Alguem pode me ajudar??

 

Segue abaixo o código....

 

<?   require_once('include/conexaoMS.php'); ?>

<?php if($_POST["acao"] == "cadastrar")
{
	$titulo = $_POST["titulo"];
	$data =  date("Y-m-d", strtotime($_POST["data"]));
	$hora = $_POST["hora"];
	$ArquivoNome = $_FILES['arquivo']['name'];
	$ArquivoTipo = $_FILES['arquivo']['type'];
	$ArquivoSize = $_FILES['arquivo']['size'];
	$foto = $_FILES['foto']['tmp_name'];
	$ErroUpload  = $_FILES['arquivo']['error'];
	//$dirBase	= $_SERVER['DOCUMENT_ROOT'].'../institucionais/correio_escola/tiras/tirinhas/' .$ArquivoNome;
	
	$sql = "INSERT INTO cosmo_correio_escola_tirinhas
	   ([tirinha_titulo] ,[tirinha_data], [tirinha_imagem], [tirinha_status])
	VALUES	('".$titulo."','".$data." ".$hora."','".$foto."',1)";
	
	if($rs = @sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET)))
	{
	echo ('<center>Cadastro efetuado com Sucesso!</center>');
	
	}else{
		if (count($error) == 0) {
 
			// Pega extensão da imagem
			preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext);
 
        	// Gera um nome único para a imagem
        	$nome_imagem = md5(uniqid(time())) . "." . $ext[1];
			
			
			$dirBase = "../institucionais/correio_escola/tiras/tirinhas/" . $ArquivoNome;

			
 		}
 
		if($ArquivoTipo=="application/octet-stream"){
			echo("<script> alert('Anexo não pode ser enviado, pois pode conter vírus!'); history.go(-1)</script>");
		}else{
			if (!isset($ArquivoNome) || empty($ArquivoNome)){
			}else{
					if ($ArquivoSize > 5500000)
					{ 
						echo("<script> alert('Anexo pode ter no maximo 5.5 MegaBytes!'); history.go(-1)</script>");
					}else
						{
							chmod($dirBase, 0777);
							if (is_uploaded_file($foto))
							{
								if (move_uploaded_file($foto["tmp_name"], $dirBase))
								{
									
								}
							}
						}
					}
				}
			}
		}
				// Se houver mensagens de erro, exibe-as
		if (count($error) != 0) {
			foreach ($error as $erro) {
				echo $erro . "<br />";
			}
		}		
?>

<link rel="stylesheet" type="text/css" href="admin.css">

<div style="width:100% ">
<div id="geral">
		<? include("menu.php")?>
	<div class="geral_dir">	
		<div id="conteudo_mostrar">
			<div style="width:330px; margin-left:75px; display:block; margin-top:80px; ">
			
			<form name="form1" method="post" action="cadastrar_tirinhas.php" enctype="multipart/form-data">
				<table class="tit" border="0" cellspacing="0" cellpadding="0">
				  <tr>
					<td width="60" height="28"><b>Titulo:</b></td>
					<td width="220"><input name="titulo" class="borda" style="width:220px; height:18px" id="titulo" type="text"></td>
				  </tr>
				</table>
				<table class="tit" border="0" cellspacing="0" cellpadding="0">
				  <tr>
					<td width="60" height="28"><b>Data:</b></td>
					<td width="80"><input name="data" class="borda" id="data" value="<? echo date("d/m/Y"); ?>" style="width:70px" type="text"> </td>
					<td width="40"><b>Hora:</b></td>
					<td width="80"> <input name="hora" class="borda" id="hora" value="<? echo date("G:H:s"); ?>" style="width:80px" type="text"> </td>
				  </tr>
				  <tr>
					<td width="60" height="28"><b>Imagen:</b></td>
					<td colspan="3"><input class="borda" name="foto" id="foto" style="width:220px; height:18px" type="file"></td>
				  </tr>
				  <tr>
					<td colspan="4" height="50" style="text-align:center; vertical-align:middle ">
						<input type="hidden" name="acao" value="cadastrar">
						<input type="submit" name="Submit" value="Cadastrar">
					</td>
				  </tr>
				</table>
			</form>
			</div>			
		</div>
		
	</div>
</div>
</div>

Bom dia Pessoal, agora não sei porque cargas d´aguas não esta mais cadastrando... Eu pedi para exibir o insert...

(INSERT INTO cosmo_correio_escola_tirinhas ([tirinha_titulo] ,[tirinha_data], [tirinha_imagem], [tirinha_status]) VALUES ('teste','1969-12-31 11:11:32','C:\WINDOWS\Temp\php4630.tmp',1)

Ai fui no banco e pedi para inserir manual... O seguinte erro apareceu "A conversão do tipo de dados char no tipo de dados smalldatetime resultou em um valor smalldatetime fora do intervalo. A instrução foi finalizada."

 

Se eu tirar o campo data funciona normal...

 

Estranho ontem estava normal... Agora não esta mais funcionando...

 

Alguem pode me ajudar???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre gravar a data e hora no banco de dados beleza, consegui fazer grava-la novamente, apenas troque a linha para $data = date("d-m-Y", strtotime($_POST["data"]));

 

Mais o estranho é que no banco ao invés de pegar a data correta do campo no qual aparece corretamente ele aparece sempre a data '31-12-1969'...

 

Alguem pode me dizer o porque disso?? Ao invés de pegar a data correta no qual esta sendo exibida, quando ele vai salvar no banco grava somente essa data....

 

E também ainda não descobri como inserir o caminho e a pasta correta da imagem que quero fazer Upload...

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja se a variavel esta recebendo correto a data

 

 

$data =  date("Y-m-d", strtotime($_POST["data"]));
echo $data;
exit();

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja se a variavel esta recebendo correto a data

 

 

$data =  date("Y-m-d", strtotime($_POST["data"]));
echo $data;
exit();

Antes ele já estava assim... Pega a data 1969-12-31 no caso eu tinha trocado a ordem "Y-m-d" para "d-m-y" para pegar a data com o formato que eu quero... Mais continua pegando a data 31-12-1969

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros, consegui fazer o upload de imagens e gravar no banco tudo que eu quero da forma correta... Então o Upload de imagens gravadas na pasta no banco e na pasta online está funcionando 100% com o banco de dados SQL SERVER...

 

segue abaixo o código de upload...


<?   require_once('include/conexaoMS.php'); ?>

<?
	session_start();
	if($_SESSION['s_login'] != "OK"){
		header('Location: index.php');
	}	
?>

<?php
	if($_POST["acao"] == "cadastrar")
	{
		$titulo = $_POST["titulo"];
		$data 	= $_POST["data"];
		$hora 	= $_POST["hora"];

		$ArquivoNome = $_FILES['foto']['name'];
		$ArquivoTipo = $_FILES['foto']['type'];
		$ArquivoSize = $_FILES['foto']['size'];
		$ArquivoTemp = $_FILES['foto']['tmp_name'];
		$ErroUpload  = $_FILES['foto']['error'];
		$dirBase	= $_SERVER['DOCUMENT_ROOT']."PASTA ONDE VAI SER GRAVADAS AS IMAGENS";
		if (!isset($ArquivoNome) || empty($ArquivoNome))
		{
			echo("<script language='javascript'>alert('Selecione uma imagem para gravar');history.go(-1);</script>");
		}else
		{
			if ($ArquivoSize > 5500000)
			{ //5.5 MegaBytes
				echo "Foto com no maximo 5.5 MegaBytes";
				exit();
			}
			switch($type)
			{
				case 1:
					$extensao = "gif";
					break;
				case 2:
					$extensao = "jpg";
					break;
			}
			$nomeImagem =   date('dmYHis')."_tirinha.".$extensao."jpg";
			if (is_uploaded_file($ArquivoTemp))
			{
				if (move_uploaded_file($ArquivoTemp, $dirBase.$nomeImagem))
				{
					$sql = "INSERT INTO cosmo_correio_escola_tirinhas 
						(tirinha_titulo, tirinha_data, tirinha_imagem, tirinha_status)        
						VALUES  ('".$titulo."','".$data." ".$hora."','".$nomeImagem."',1)";
						
					$rs = @sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
					echo("<script language='javascript'>alert('Cadastro efetuado com sucesso');</script>");
				}else
				{
					echo "ERRO ao copiar para a pasta!";
				}
			}else
			{
				echo "Erro ao fazer o Upload, tente novamente!";
			}
		}	
	}

	?>

<link rel="stylesheet" type="text/css" href="admin.css">

<div style="width:100% ">
<div id="geral">
		<? include("menu.php")?>
	<div class="geral_dir">	
		<div id="conteudo_mostrar">
		  <div style="width:330px; margin-left:75px; display:block; margin-top:80px; ">
			
			<form name="form1" method="post" action="cadastrar_tirinhas.php" enctype="multipart/form-data">
				<table class="tit" border="0" cellspacing="0" cellpadding="0">
				  <tr>
					<td width="60" height="28"><b>Titulo:</b></td>
					<td width="220"><input name="titulo" class="borda" style="width:220px; height:18px" id="titulo" type="text"></td>
				  </tr>
				</table>
				<table class="tit" border="0" cellspacing="0" cellpadding="0">
				  <tr>
					<td width="60" height="28"><b>Data:</b></td>
					<td width="80"><input name="data" class="borda" id="data" value="<? echo date("d/m/Y"); ?>" style="width:70px" type="text"> </td>
					<td width="40"><b>Hora:</b></td>
					<td width="80"> <input name="hora" class="borda" id="hora" value="<? echo date("H:i"); ?>" style="width:80px" type="text"> </td>
				  </tr>
				  <tr>
					<td width="60" height="28"><b>Imagen:</b></td>
					<td colspan="3"><input class="borda" name="foto" id="foto" style="width:220px; height:18px" type="file"></td>
				  </tr>
				  <tr>
					<td colspan="4" height="50" style="text-align:center; vertical-align:middle ">
						<input type="hidden" name="acao" value="cadastrar">
						<input type="submit" name="Submit" value="Cadastrar">
					</td>
				  </tr>
				</table>
			</form>
			</div>			
		</div>
		
	</div>
</div>
</div>


OBS: Moderador se quiser pode fechar o tópico ou então coloca-lo como tutorial... Pois está funcionamento 100% - Upload de imagens no banco + SQL SERVER

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.