Formulário com multiplo upload
Tenho um formulário(encontrei na net) que salva uma serie de informações e é possivel fazer o upload de uma imagem. Eu quero adaptar o script para poder enviar três fotos, além disso um print de um documento.
O problema é que somente salva as informações no banco de dados se for enviado uma imagem, se não for enviando imagem e somente informações de texto nos campos, nada feito.
Segue abaixo o script:
<?php
// Visitante não pode acessar esta página
if($dados == '') {
header ("Location:$login_user");
}
// Aqui você faz a conexão com o banco de dados
include "config.php";
// Se o usuário clicou no botão cadastrar efetua as ações
if ($_POST['cadastrar']) {
// Recupera os dados dos campos
$nome = $_POST['nome'];
$id = $_POST['id_usuario'];
$login = $_POST['login'];
$marcador = $_POST['marcador'];
$fabricante = $_POST['fabricante'];
$modelo = $_POST['modelo'];
$nserie = $_POST['nserie'];
$nfiscal = $_POST['nfiscal'];
$crexercito = $_POST['crexercito'];
$rexercito = $_POST['rexercito'];
$foto = $_FILES["imagem"];
// Verificando se os campos obrigatórios foram preenchidos
if(($_POST['marcador'] == '') || ($_POST['fabricante'] == '') || ($_FILES["imagem"] == '')){
echo '<strong style="color: #BC2A4D;">Você deve preencher os campos obrigatórios.</strong>';
include "formulario_marcador.php";
}
// Se a foto estiver sido selecionada
if (!empty($foto["name"])) {
// Largura máxima em pixels
$largura = 15000;
// Altura máxima em pixels
$altura = 18000;
// Tamanho máximo do arquivo em bytes
$tamanho = 200000;
// Verifica se o arquivo é uma imagem
if(!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $foto["type"])){
$error[1] = "O arquivo enviado não é uma imagem.";
}
// Pega as dimensões da imagem
$dimensoes = getimagesize($foto["tmp_name"]);
// Verifica se a largura da imagem é maior que a largura permitida
if($dimensoes[0] > $largura) {
$error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels.";
}
// Verifica se a altura da imagem é maior que a altura permitida
if($dimensoes[1] > $altura) {
$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels.";
}
// Verifica se o tamanho da imagem é maior que o tamanho permitido
if(!empty($arquivo["size"]) > $tamanho) {
$error[4] = "A imagem deve ter no máximo ".$tamanho." bytes.";
}
// Se não houver nenhum erro
if (!empty($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];
// Caminho de onde ficará a imagem
$caminho_imagem = "fotos/" . $nome_imagem;
// Faz o upload da imagem para seu respectivo caminho
move_uploaded_file($foto["tmp_name"], $caminho_imagem);
// Insere os dados no banco
$sql = mysql_query("INSERT INTO marcadores (nome, id_usuario, login, marcador, fabricante, modelo, nserie, nfiscal, crexercito, rexercito, foto) VALUES ('".$nome."', '".$id."', '".$login."', '".$marcador."', '".$fabricante."', '".$modelo."', '".$nserie."', '".$nfiscal."', '".$crexercito."', '".$rexercito."', '".$nome_imagem."')") or die( mysql_error() );
// Se os dados forem inseridos com sucesso
if ($sql){
echo "<strong style='color: #BC2A4D;'>O seu marcador foi cadastrado com sucesso. <br />
Você pode editar seus marcadores clicando no link <strong>Meus Marcadores</strong>. <br />
Caso queira excluir quaisquer de seus marcadores cadastros, você deve solicitar ao administrador do site, justificando o motivo da exclusão.<br /> <br /> Você será redirecionado automaticamente para à página inicial do site.</strong>";
header("refresh:3;url=$home_url" );
}
} else {
echo "<strong style='color: #BC2A4D;'>O seu marcador foi cadastrado com sucesso. <br />";
}
// Se houver mensagens de erro, exibe-as
if (!empty($error) != 0) {
foreach ($error as $erro) {
echo '<strong style="color: #BC2A4D;"> '.$erro .' </strong><br />';
include "formulario_marcador.php";
}
}
}
}
?>
Preciso ajustar o script para poder receber 4 campos de informações opcionais que possa ser gravadas no banco de dados. Pesquisei muito e não achei nada. Peço ajuda de vocês nessa questão. Agradeço desde já.
Abrs
Discussão (1)
Carregando comentários...