Jump to content
M. Alberto

Cadastrar em BD mySQL + Upload Arquivo

Recommended Posts

Estou com este formulário simples para UPLOAD de imagens, porém estou tendo problemas ao cadastrar as informações que há nos campos adicionais.

Por algum motivo, não esta cadastrando no banco de dados, somente realiza o UPLOAD e cadastra o nome do arquivo novo, código e horário de envio.

 


<head>
<style type="text/css">
.auto-style1 {
	text-align: center;
}
.auto-style2 {
	font-family: Verdana, Geneva, Tahoma, sans-serif;
	font-size: medium;
	text-align: center;
}
.auto-style3 {
	font-family: Verdana, Geneva, Tahoma, sans-serif;
	font-size: large;
	text-align: center;
}
.auto-style4 {
	text-align: right;
}
</style>
</head>

<?php
  include("conexao.php");
  $msg = false;
  if(isset($_FILES['arquivo'])){
    $extensao = strtolower(substr($_FILES['arquivo']['name'], -4)); //pega a extensao do arquivo
    $novo_nome = md5(time()) . $extensao; //define o nome do arquivo
    $diretorio = "upload/"; //define o diretorio para onde enviaremos o arquivo
    move_uploaded_file($_FILES['arquivo']['tmp_name'], $diretorio.$novo_nome); //efetua o upload
    $sql_code = "INSERT INTO photos_upload (codigo, arquivo, data) VALUES(null, '$novo_nome', NOW())";
    if($mysqli->query($sql_code))
      $msg = "Arquivo en

 

Outra questão é como fazer para aceitar somente extensões .JPG , .GIF, .PNG ? Tem como fazer isso?

 

Obrigado desde já!!

Share this post


Link to post
Share on other sites

Tem certeza que copiou todo o código? Tem apenas 1 INSERT, o qual insere os dados que você citou.

 

Sobre a validação do formato.

 

Você já tem o formato na variável $extensão, use ela para validar, ex:

if($extensao == ".png" || $extensao == ".jpg"){
	// faça isso
}else{
	// retorna erro
}

Simples assim.

Share this post


Link to post
Share on other sites
Em 23/01/2019 at 22:33, marcosmarcolin disse:

Tem certeza que copiou todo o código? Tem apenas 1 INSERT, o qual insere os dados que você citou.

 

kkk agora que reparei... não sei porque mas não foi mesmo tudo ... 

mas vou tentar enviar novamente.

 

Em 23/01/2019 at 22:33, marcosmarcolin disse:

Sobre a validação do formato.

 

Você já tem o formato na variável $extensão, use ela para validar, ex:


if($extensao == ".png" || $extensao == ".jpg"){
	// faça isso
}else{
	// retorna erro
}

Simples assim.

 

Share this post


Link to post
Share on other sites

O código é este abaixo:

 


<head>
<style type="text/css">
.auto-style1 {
	text-align: center;
}
.auto-style2 {
	font-family: Verdana, Geneva, Tahoma, sans-serif;
	font-size: medium;
	text-align: center;
}
.auto-style3 {
	font-family: Verdana, Geneva, Tahoma, sans-serif;
	font-size: large;
	text-align: center;
}
.auto-style4 {
	text-align: right;
}
</style>
</head>

<?php
  include("conexao.php");
  $msg = false;
  if(isset($_FILES['arquivo'])){
    $extensao = strtolower(substr($_FILES['arquivo']['name'], -4)); //pega a extensao do arquivo
    $novo_nome = md5(time()) . $extensao; //define o nome do arquivo
    $diretorio = "upload/"; //define o diretorio para onde enviaremos o arquivo
    move_uploaded_file($_FILES['arquivo']['tmp_name'], $diretorio.$novo_nome); //efetua o upload
    $sql_code = "INSERT INTO photos_upload (codigo, arquivo, data) VALUES(null, '$novo_nome', NOW())";
    if($mysqli->query($sql_code))
      $msg = "Arquivo enviado com sucesso!";
    else
      $msg = "Falha ao enviar arquivo.";
  }
?>
<h1>&nbsp;</h1>
<?php if(isset($msg) && $msg != false) echo "<p> $msg </p>"; ?>
<form action="upload.php" method="POST" enctype="multipart/form-data">
    <div class="auto-style1">
		<br>
		<table align="center" cellpadding="0" cellspacing="0" style="width: 600">
			<tr>
				<td class="auto-style3" style="height: 47px"><strong>ENVIO DE 
				FOTOGRAFIAS</strong></td>
			</tr>
			<tr>
				<td class="auto-style2">&nbsp;</td>
			</tr>
			<tr>
				<td class="auto-style2">
				<table cellpadding="0" cellspacing="0" style="width: 550">
					<tr>
						<td style="width: 266px; height: 30">NOME</td>
						<td class="auto-style4" style="height: 30">
						<input name="nome" id="nome" type="text"></td>
					</tr>
					<tr>
						<td style="width: 266px; height: 30">FABRICANTE</td>
						<td class="auto-style4" style="height: 30">
						<input name="fabricante" id="fabricante" type="text"></td>
					</tr>
					<tr>
						<td style="width: 266px; height: 30">MOTOR</td>
						<td class="auto-style4" style="height: 30">
						<input name="motor" id="motor" type="text"></td>
					</tr>
					<tr>
						<td style="width: 266px; height: 30">LOCAL</td>
						<td class="auto-style4" style="height: 30">
						<input name="local" id="local" type="text"></td>
					</tr>
					<tr>
						<td style="width: 266px; height: 30">EMPRESA</td>
						<td class="auto-style4" style="height: 30">
						<input name="empresa" id="empresa" type="text"></td>
					</tr>
					<tr>
						<td style="width: 266px; height: 30">&nbsp;</td>
						<td style="height: 30">&nbsp;</td>
					</tr>
					<tr>
						<td colspan="2">&nbsp;</td>
					</tr>
				</table>
				</td>
			</tr>
			<tr>
				<td class="auto-style2">&nbsp;</td>
			</tr>
			<tr>
				<td class="auto-style2">&nbsp;</td>
			</tr>
			<tr>
				<td class="auto-style2">&nbsp;</td>
			</tr>
			<tr>
				<td class="auto-style2"> <input type="file" required name="arquivo">
  <input type="submit" value="Salvar">
</td>
			</tr>
		</table>
		<br><br><br><br></div>
</form>

 

Agora, como ainda não sei usar muito bem o Mysqli, confesso que não sei como fazer com que os campos que esta visualizando no formulário serem cadastrados junto com o nome do arquivo, data e código.

 

 

Obrigado!

1.gif

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.