Jump to content
Sign in to follow this  
asacap1000

Salvar arquivos que estão em um array no banco

Recommended Posts

Galera estou com uma zica aqui e não sai do lugar. Tenho um formulário que trabalha com dois campos input text e input files.

Conforme a necessidade o usuario adiciona campos para colocar mais dados.

Segue script do form:

<html>  
<head>  
<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.1.min.js"></script>  
<script type="text/javascript">  
$(document).ready(function(){ 
    var input ='<div class="col-xs-10"><tr><td><label>CNPJ:<input type="text" name="cliente[]" /></label></td><td><label>PROCURAÇÃO:<input type="file" name="procuracao[]"/></label></td><td><label><a href="#" class="remove"><img src="imagens/flagvermelho.png" width="23" height="23" border="0"></a></label> </td></tr></div>';  
    $("input[name='add']").click(function( e ){  
        $('#inputs_adicionais').append( input );  
    });  
 
    $('#inputs_adicionais').delegate('a','click',function( e ){  
        e.preventDefault();  
        $(this).closest("div.col-xs-10").remove();  
    });  
 
});  
</script>  
</head>  
<body>  
    <form name="form1" action="teste.php" method="post">
        <label style="display: block">
          <input type="button" value="Adicionar Cliente" name="add" onclick="AddCampos()">
           </label>  
           <label style="display: block">
        <fieldset id="inputs_adicionais" style="border: #FF0004">  
        </fieldset> </label>  
        <input type="submit" value="ENVIAR">
    </form> 
</body>  
</html>

Beleza, até aí 100% daí mando para estes dados para serem adicionados ao BD é onde está dando zica.

Segue script:


<?php 
    $nome     = $_POST['cliente'];
    $procuracao = $_POST['procuracao'];
    $total    = count($nome);

    for($i = 0; $i < $total; $i++){
 
       
$pasta_cliente = trim($nome[$i]);
$pasta_cliente = preg_replace( '/[`^~\'"]/', null, iconv( 'UTF-8', 'ASCII//TRANSLIT',$pasta_cliente));
$pasta_cliente = preg_replace("/'\s/" , " " , $pasta_cliente); 
mkdir('../../../desp_proc/'.$pasta_cliente.'/');
$diretorio = "../../../desp_proc/$pasta_cliente/";

//////////////////PRIMEIRO DOCUMENTO//////////////////
if (!empty($_FILES)) {
	
	
	$tempFile = $_FILES['procuracao']['tmp_name'];
//Pega as Variaveis	
    $nome_arquivo = $_FILES['procuracao']['name'];
	$data = date("dmyhis");
	
//Junta todas as variaveis	
    $completo = $nome_arquivo;

//Pega a Extensão Original	
    $path_parts = pathinfo($nome_arquivo);

//Converte para MD5 não estou usando
	$nome_arquivo_md5 = $nome_arquivo;
	$nome_arquivo_md5 = preg_replace( '/[`^~\'"]/', null, iconv( 'UTF-8', 'ASCII//TRANSLIT',$nome_arquivo_md5));
//Agora vai juntar nome em md5 com a extensão
	$ext = pathinfo($nome_arquivo, PATHINFO_EXTENSION);
	if($ext!=TRUE){
		
		}
		else {
    $nome_final =$nome_arquivo_md5.".".$ext;
	$targetFile1 =  str_replace('//','/',$diretorio) . $nome_final;
		
move_uploaded_file($tempFile,$targetFile1);

}		
		
	echo 	$targetFile1;


    }

////O CAMPO ABAIXO APENAS TESTE PARA VER NA TELA AS INFORMAÇÕES
	printf("cliente : %s <br />", $nome[$i]);
        printf("procuracao : %s <br />", $procuracao[$i]);
         

///ABAIXO FAÇO A INCLUSÃO NO BANCO DE DADOS

header("Content-Type: text/html; charset=ISO-8859-1");
$servidor = 'localhost';
$banco	  = 'test';
$usuario  = 'root';
$senha    = '';
$link     = mysql_connect($servidor, $usuario, $senha);
$db		  = mysql_select_db($banco,$link);
if(!$link)
{
	echo "erro ao conectar ao banco de dados!";exit();
}

mysql_query("INSERT INTO teste(nome, anexos) VALUES ('$nome[$i]','$targetFile1')");
		
	}
?>

Na tela ele aparece desta forma adicionei 6 clientes:

cliente : deivid
procuracao : [TOTVS] - Guia_instalacao_Protheus11.pdf
cliente : Juliano
procuracao : [totvs] - instalando com (sql).pdf
cliente : carol
procuracao : ADVPL - O Manual.pdf
cliente : rafael
procuracao : ADVPL I - Básico.pdf
cliente : mario
procuracao : boleto deivid.pdf
cliente : fabio
procuracao : apresentacao.ppt

ele cria as pastas porém não salva os arquivos.

Share this post


Link to post
Share on other sites

Tenta colocar isso enctype="multipart/form-data" no seu form

http://www.w3schools.com/tags/att_form_enctype.asp

Valeu Wesley realmente eu tinha esquecido kkk.

na tela que salva fiz da seguinte forma para quem precisar aí agora está 100%

<?php 
    $nome     = $_POST['cliente'];
    $procuracao = $_FILES['procuracao'];
 	$files = $_FILES['procuracao'];
	
	//$dados = implode($_FILES['procuracao']);
    $total    = count($nome);

    for($i = 0; $i < $total; $i++){
 
       
$pasta_cliente = trim($nome[$i]);
$pasta_cliente = preg_replace( '/[`^~\'"]/', null, iconv( 'UTF-8', 'ASCII//TRANSLIT',$pasta_cliente));
$pasta_cliente = preg_replace("/'\s/" , " " , $pasta_cliente); 
mkdir('../../../desp_proc/'.$pasta_cliente.'/');
$diretorio = "../../../desp_proc/$pasta_cliente/";

//////////////////PRIMEIRO DOCUMENTO//////////////////	
 $files = $_FILES['procuracao'];
        //$directory = 'uploads/
          $upload = move_uploaded_file(
            $files['tmp_name'][$i], 
            $targetFile2 =  str_replace('//','/',$diretorio) . $files['name'][$i]
          );
         
	
	header("Content-Type: text/html; charset=ISO-8859-1");
$servidor = 'localhost';
$banco	  = 'test';
$usuario  = 'root';
$senha    = '';
$link     = mysql_connect($servidor, $usuario, $senha);
$db		  = mysql_select_db($banco,$link);
if(!$link)
{
	echo "erro ao conectar ao banco de dados!";exit();
}

mysql_query("INSERT INTO teste(nome_eleitor, login) VALUES ('$nome[$i]','$targetFile2')");
		
		
}
?>

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
Sign in to follow this  

  • Similar Content

    • By djwagnersp
      Bom dia amigos, tudo bem? estou com uma duvida se alguém puder me ajudar agradeço desde já.
       
      tenha a seguinte condição:
      //array dos produtos $prod = 'agua'; $prod = 'refri'; $prod = 'cerveja'; //array das quantidades $qtd = '3'; $qtd = '2'; $qtd = '6'; Gostaria de fazer um loop o for ou foreach que imprimisse o $prod a quantidade de vezes do $qtd
      como seria possível realizar isso?
    • By tiago.rizzon
      Boa tarde pessoal!
      Alguém poderia me dizer oq está errado na minha primeira tentativa de conectar com DB mysql?
      Em anexo coloquei print do erro no browser e print dos dados de acesso ao banco.
      Meu usuário é megasys.com, o nome do DB q quero acessar é CL001... q contem uma tabela teste FUN...
      Desde já agradeço!!
      Obrigado!
       
      meu index.php está assim:
       
      <!DOCTYPE html>
      <html>
      <body>
      <?php
      $link = mysql_connect('mysql22.redehost.com.br,3306', 'megasys.com', 'minhaSenha');
      if (!$link) {
          die('Não foi possível estabelecer uma conexão com o MySQL : ' . mysql_error());
      }
      $db_selected = mysql_select_db('CL001', $link);
      if (!$db_selected) {
          die ('Não foi possivel acessar o banco de dados: ' . mysql_error());
      }
      ?>
      </body>
      </html>


    • By Cascais51
      Olá, pessoal!
      Tenho um banco de dados com 111 tabelas de um sistema de gestão feito para um cliente. Acontece que agora quero transformar esse sistemas em SaaS, Quero manter ele com a mesma base, apenas incluindo uma tabela "licencas" onde terei o cadastro de meus clientes na modalidade SaaS com as configurações necessárias e possíveis ligações com tabelas de mensalidades e etc.
      Pois bem, para não fazer grandes alterações nesse sistema, adicionei uma coluna de nome "licenca" em cada uma das 111 tabelas e fiz uma chave estrangeira em cada uma ligando a chave primária da tabela "licencas" (id_licenca).
      A ideia é com mais tempo organizar para apenas as tabelas chaves terem essa ligação com a tabela licencas, mas por enquanto tenho pouco tempo, mas gostaria de saber de vocês se ter essa coluna "licenca"  em todos as tabelas ligando a tabela licenças vai ser muito custoso em processamento para meu banco de dados, ou é indiferente?

      Acham que eu deveria deixar o campo sem chave estrangeira?
       
      Enviei a imagem com o diagrama de apenas 5 tabelas para ilustrar. são muitas tabelas para enviar todas.

    • By Leonardo Ortega
      Prezados, bom dia.
      sou novo por aqui, e me deparei com esta situação:
      estou desenvolvendo um projeto e tudo começou quando apenas mudei o banco de dados que estava conectado. Ou seja, se eu me conecto ao baco de dados anterior, volta todo código html, porém, se conecto ao banco de dados atual as divs desaparecem. 
       
      obs: Isso tb acontece quando eu desativo o php tudo volta como a imagem 1 e se eu ativo fica como a imagem2.
       
      quem pode me ajudar.. desde já muito obrigado.  


    • By dhebryhan
      #importar a biblioteca
      import pymysql
      #conexao com banco de dados
      conexao = pymysql.connect(
          host    = "localhost",
          user    = "root",
          passwd  = "123456",
          db      = "dbMegasena"
      )

      cursor = conexao.cursor()
      #gerando combinacoes dos numeros
      for dez1 in range(60):
          for dez2 in range(dez1+1,60):
              for dez3 in range(dez2+1,60):
                  for dez4 in range(dez3+1,60):
                      for dez5 in range(dez4+1,60):
                          for dez6 in range(dez5+1,60):
                             #total += 1
                              sql_data = (dez1 + 1, dez2 + 1, dez3 + 1, dez4 + 1, dez5 + 1, dez6 + 1)
                              sql = "INSERT INTO combinacoesMega (bola01, bola02, bola03, bola04, bola05, bola06) VALUES(?, ?, ?, ?, ?, ?)"
                              cursor.execute(sql, sql_data)
×

Important Information

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