Ir para conteúdo
Entre para seguir isso  
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.

Compartilhar este post


Link para o post
Compartilhar em outros 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')");
		
		
}
?>

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
Entre para seguir isso  

  • Conteúdo Similar

    • Por gersonab
      Procuro uma revenda de hospedagem confiável, ja adianto que uolhost e locaweb estão fora dos planos.
    • Por Jefferson andre
      Ola, estou criando um contador de acessos diario mas nao funciona, a tabela tem o campo data no formato date e o campo contador int(10)
       
      A ideia eh verificar a data e se nao existir incluir na tabela, se existir adicionar ao contador
       
      Parece que o erro esta no formato da data, nem manualmente consigo incluir na tabela via localhost ou na hospedagem da google
       
      Agradeço qualquer ajuda
       
      <?php // fazendo uma conexão com o banco de dados include("conexao.php"); // grava a data atual em uma variavel date_default_timezone_set('America/Sao_Paulo'); $date = date('d-m-Y'); //$sql = "SELECT codigo FROM contador"; $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$date'"); if (mysqli_num_rows($resultado)== true){ // registro ja existe } else { // resultado nao encontrado entao inserir $sql = "INSERT INTO contador_diario ('data', 'contador') VALUES ('$date', '1')"; if ($arquivo->query($sql) == TRUE) { echo "Data cadastrada com sucesso"; } else { echo "Erro: " . $sql . "<br>" . $arquivo->error; } } // refaz a pesquisa para registrar o contador $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$date'"); // igualar a array a uma variavel $linha=mysqli_fetch_array($resultado); $cod_2 = $linha["contador"]+1; // lista a variavel //echo "<font face='Arial'><span class='style14'>$cod_2</span></font>"; $sql = "UPDATE contador_diario SET contador=$cod_2"; if ($arquivo->query($sql) === TRUE) { // echo "Alteração efetuada com sucesso"; } else { // echo "Erro alterando o contador de visitas diario" . mysqli_error($arquivo); } // fecha a conexao mysqli_close($arquivo); ?>  
    • Por gersonab
      Tenho este sql que funciona normal:
      <?php $idtor = (int)$_GET['id_tor']; $dia = $_GET['dia']; $sql3 = "SELECT * FROM cantos INNER JOIN campeonato ON id_camp = id_campeonato INNER JOIN torneio ON id_tor = id_torneio WHERE data = :dia AND id_torneio = :idtor ORDER BY cantosfim DESC, pontos DESC, cantos DESC"; $stmt = $pdo->prepare($sql3); $stmt->bindParam(':idtor', $idtor); $stmt->bindParam(':dia', $dia); $stmt->execute(); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { ?> porém este outro não retorna nada, nem erro...
      <?php $idtor = (int)$_GET['id_tor']; $consul = "SELECT id_cantos, id_torneio, id_campeonato, SUM(cantosfim) AS cantfin, SUM(pontos) AS pontfin FROM cantos INNER JOIN campeonato ON id_camp = id_campeonato INNER JOIN torneio ON id_tor = id_torneio WHERE id_tor = :idtor ORDER BY pontfin DESC, cantfin DESC"; $stmt = $pdo->prepare($consul); $stmt->bindValue(':idtor', $idtor); $stmt->execute(); while ($lin = $stmt->fetch(PDO::FETCH_ASSOC)) { ?> não consigo encontrar o erro.
    • Por Michael Costa
      Olá. Eu gostaria de saber se é possível passar variáveis de php para css sendo que foi colocado como nome de class as variaveis do php
    • Por Alex Dias
      <?php //CONECTA COM O BANCO DE DADOS require_once("adm/conecta.php"); //SQL $sql = "SELECT DISTINCT tb_comentarios.ID_COMENTARIOS, tb_comentarios.DATA_COMENTARIOS, tb_comentarios.NOME_COMENTARIOS, tb_comentarios.COMENTARIOS, tb_respostas.ID_RESPOSTAS, tb_respostas.DATA_RESPOSTAS, tb_respostas.NOME_RESPOSTAS, tb_respostas.RESPOSTAS FROM tb_comentarios, tb_respostas WHERE tb_comentarios.ID_COMENTARIOS = tb_respostas.ID_COMENTARIOS ORDER BY DATA_COMENTARIOS DESC"; $resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta ao banco de dados"); // CHAMA OS DADOS DA TABELA while ($linha=mysql_fetch_array($resultado)) { $id_comentarios = $linha["ID_COMENTARIOS"]; $data_comentarios = $linha["DATA_COMENTARIOS"]; $nome_comentarios = $linha["NOME_COMENTARIOS"]; $email_comentarios = $linha["EMAIL_COMENTARIOS"]; $comentarios = $linha["COMENTARIOS"]; $status = $linha["STATUS"]; $id_artigo = $linha["ID_ARTIGO"]; $id_respostas = $linha["ID_RESPOSTAS"]; $data_respostas = $linha["DATA_RESPOSTAS"]; $nome_respostas = $linha["NOME_RESPOSTAS"]; $email_respostas = $linha["EMAIL_RESPOSTAS"]; $respostas = $linha["RESPOSTAS"]; $status = $linha["STATUS"]; $id_artigo = $linha["ID_ARTIGO"]; $id_comentarios = $linha["ID_COMENTARIOS"]; $data_portugues1= implode("/", array_reverse(explode("-", "$data_comentarios"))); $data_portugues2= implode("/", array_reverse(explode("-", "$data_respostas"))); echo" <table width='1200' align='center' border='0' cellspacing='0' cellpadding='0'> <tr> <td width='100' valign='top'><img src='images/usuario.jpg'></td> <td width='900' valign='top'><p align='left'><font size='3'><strong>$nome_comentarios</strong> dia $data_portugues1</font></p><br><p align='justify'><font size='3'>$comentarios</font><p></td> <td width='200' align='center' valign='middle'><a href='#'><img src='images/responder.jpg' bordeer='0'></a></td> </tr> </table> "; echo"<br><br> <table width='1200' align='center' border='0' cellspacing='0' cellpadding='0'> <tr> <td width='100' valign='top'>&nbsp;</td> <td width='100' valign='top'><img src='images/usuario2.jpg'></td> <td width='800' valign='top'><p align='left'><font size='3'><strong>$nome_respostas</strong> dia $data_portugues2</font></p><br><p align='justify'><font size='3'>$respostas</font><p></td> <td width='200' align='center' valign='middle'><a href='#'><img src='images/responder.jpg' bordeer='0'></a></td> </tr> </table> <br><br><br><br>"; }//FECHA FOR ?> Boa tarde amigos, estou batendo cabeça aqui com meu Blog, meu Blog tem duas tabelas MySQL uma chamada tb_comentarios para armazenasr os comentários dos artigos postados, a outra tabela é chamada de tb_respostas para armazenar as respostas desses comentários dos usuários. Está tudo ok imprimindo os comentários e respostas na tela bem legal, o único problema é que os comentários estão duplicando, as respostas estão ok, mas os comentários estão duplicando.
       
      O Correto seria o comentário ficar lá e as respostas todas em baixo desse comentário, a questão é que cada resposta dada acaba repetido o comentário, então fica sempre o comentário e a resposta um abaixo do outro, e se tiver três respostas desse comentário, a dupla comentário x resposta se repete por três vezes sendo que o ideal seria só um comentário e as três respostas em baixo, e não consigo determinar que o comentário não se repita, ja usei DISTINCT mas não resolve.

      Segue abaixo o código e anexo o PRINT da tela para vocês entenderem o que tá acontecendo.


       

×

Informação importante

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