Ir para conteúdo
Fórum Script Brasil
  • 0

upload com imagem opcional


Wamamel

Pergunta

Boa tarde, gostaria de saber como colocar em um formulário o campo de imagem como não obrigatório. E como deve estar o campo de imagem no banco como "not null" ou como "none"?

Parte do php:

 <?php
   if (isset($_POST['Cquest'])){ 
                //DECLARAÇÃO DE VARIAVEIS
                $enunciado = trim(strip_tags($_POST['enunciado']));
                $opc1 = trim(strip_tags($_POST['opc1']));
                $opc2 = trim(strip_tags($_POST['opc2']));
                $opc3 = trim(strip_tags($_POST['opc3']));
                $opc4 = trim(strip_tags($_POST['opc4']));
                $opc5 = trim(strip_tags($_POST['opc5']));
                $respostaCorreta = trim(strip_tags($_POST['respostaCorreta']));
                $comentario = trim(strip_tags($_POST['rsp_comentada']));
                $disciplina = trim(strip_tags($_POST['disciplina']));
                $etapa = trim(strip_tags($_POST['etapa']));            
                $capitulo = trim(strip_tags($_POST['cap']));

                 //INICIO DO UPLOAD
            //INFO IMAGEM



             
                 
    $file     = $_FILES['img'];
    $numFile  = count(array_filter($file['name']));
    //PASTA
    $folder   = 'img/questoes';
    $folder   = '../fpdf/img';
    
    //REQUISITOS
    $permite  = array('image/jpeg','image/png', 'image/jpg','image/gif');
    $maxSize  = 1024 * 1024 * 2;
    
    //MENSAGENS
    $msg    = array();
    $errorMsg = array(
      1 => 'O arquivo no upload é maior do que o limite definido em upload_max_filesize no php.ini.',
      2 => 'O arquivo ultrapassa o limite de tamanho em MAX_FILE_SIZE que foi especificado no formulário HTML',
      3 => 'o upload do arquivo foi feito parcialmente'
    );
    
    
            
            
    if($numFile >=2){
      echo '<div class="alert alert-danger">
            <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
            se limite e de apenas uma foto!!
          </div>';

    }else if($numFile = 1 or 0){
      for($i = 0; $i < $numFile; $i++){
        $name   = $file['name'][$i];
        $type = $file['type'][$i];
        $size = $file['size'][$i];
        $error  = $file['error'][$i];
        $tmp  = $file['tmp_name'][$i];
        
        $extensao = @end(explode('.', $name));
        $novoNome = rand().".$extensao";
        
         if(!in_array($type, $permite))
          $msg[] = "<b>$name :</b> Erro imagem não suportada!";
        else if($size > $maxSize)
          $msg[] = "<b>$name :</b> Erro imagem ultrapassa o limite de 2MB";
        else{
          
          if(move_uploaded_file($tmp, $folder.'/'.$novoNome)){
            $insert = "INSERT INTO tb_questoes
            (enunciado_quest, opc1_quest, opc2_quest, opc3_quest, opc4_quest, opc5_quest,respostaCorreta_quest, comentario_quest,disciplina_quest,etapa_quest,capitulo_quest,foto_quest)
              VALUES (:enunciado, :opc1, :opc2, :opc3, :opc4, :opc5,:respostaCorreta, :comentario,:disciplina,:etapa,:capitulo,:foto)";

                try {
                    //PROTEÇÃO CONTRA SQLINJECT
                    $resultado = $conexao->prepare($insert);
                    $resultado->bindParam(':enunciado', $enunciado, PDO::PARAM_STR);
                    $resultado->bindParam(':opc1', $opc1, PDO::PARAM_STR);
                    $resultado->bindParam(':opc2', $opc2, PDO::PARAM_STR);
                    $resultado->bindParam(':opc3', $opc3, PDO::PARAM_STR);
                    $resultado->bindParam(':opc4', $opc4, PDO::PARAM_STR);
                    $resultado->bindParam(':opc5', $opc5, PDO::PARAM_STR);
                    $resultado->bindParam(':respostaCorreta', $respostaCorreta, PDO::PARAM_STR);
                    $resultado->bindParam(':comentario', $comentario, PDO::PARAM_STR);
                    $resultado->bindParam(':disciplina', $disciplina, PDO::PARAM_STR);
                    $resultado->bindParam(':etapa', $etapa, PDO::PARAM_STR);
                    $resultado->bindParam(':capitulo', $capitulo, PDO::PARAM_STR);
                    $resultado->bindParam(':foto',$novoNome,PDO::PARAM_STR);
                    $resultado->execute();
                    //CONTAR QUANTIDADE DE REGISTROS.
                   $contar = $resultado->rowCount();
                   if ($contar > 0) {
                        echo "<center><div class='alert alert-success' role='alert'>
                           Enviado com sucesso !!!</div></center>";
                        echo "<script>setTimeout(function(){document.location='index.php'},2)</script>"; }

                  } catch (PDOException $e) {
                    echo $e;
                       }

                   }else{
                   $msg[] = "<center><div class='alert alert-danger' role='alert'>
                    Envio não realizado !!!</div></center>";
                     }
                        }


             foreach($msg as $pop)
              echo '';
                //echo $pop.'<br>';
               }
                  }



     
            //FIM DO uploard
            // Query SQL (comando de inserção no banco de dados);
            // os dois pontos significa atalho ;
                }

            ?>

formulário:

 <label for="Cadfoto">Cadastrar foto:</label>
                  <input type="file" id="CadFoto" name="img[]">

 

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá!
No .sql não coloque nada.

Ex.:
...
coluna_qualquer varchar(15) not null,
imagem varchar(60),
outra_coluna varchar(100) unique,
...

Muito provavelmente deve haver uma verificação em javascript
que observa se foi ou não carregada alguma imagem

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...