Ir para conteúdo
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á!!

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

 

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.