Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RafaelLeggiero

Importador em PHP que faz transferencia de arquivo do banco

Recommended Posts

Bom dia amigos,

Estou com mais uma dúvida.Estou elaborando um importador de dados em PHP que pega as informações de uma tabela de banco LOCAL e e faz um insert em PHP para que possa passar as informações para o banco de dados, porém, me deparei com um problema, preciso passar um arquivo alocado no banco (no caso são alguns arquivos .PDF) e ao passar o campo no código PHP ele me da apenas a String com o nome do arquivo. Abaixo segue o código utilizado:

$queryLocalSelect = "SELECT  tbl_tabelas.id,tbl_tabelas.titulo,tbl_tabelas.texto,tbl_tabelas.modified,tbl_tabelas.arquivo1 FROM tbl_tabelas;";
		$queryLocalSelect = mysql_query($queryLocalSelect, $conecta1) or die(mysql_error());
		
		$selectBancoMoodle = "SELECT mdl_tabelas.intro FROM mdl_tabelas WHERE mdl_tabelas.intro LIKE '%".utf8_decode($monta1['titulo'])."%';"; 
		$selectBancoMoodle = mysql_query($selectBancoMoodle, $conecta2) or die(mysql_error());
		
		while($monta1 = mysql_fetch_assoc($queryLocalSelect)){					
			if($selectBancoMoodle)
			{
			
					$queryInsert = "INSERT INTO mdl_tabelas  (
						course,
						name,
						intro,
						introformat,
						tobemigrated,
						legacyfiles,
						legacyfileslast,
						display,
						displayoptions,
						filterfiles,
						revision,
						timemodified,
						descricao						
					) 
					VALUES
					(
						2,
						'".$monta1['titulo']."',
						'".str_replace('<','<',str_replace('>','>',$monta1['texto']))."',
						1,
						0,
						'".$monta1['arquivo1']."', /* AQUI VIRIA O CAMPO AO QUAL QUERO PASSAR OS ARQUIVOS PDF'S */
						null,
						0,
						null,
						0,
						0,
						".((strtotime($monta1['modified'])!='')?"'".strtotime($monta1['modified'])."'":'NULL')."
						null					
					);</br></br>";	
				echo $queryInsert;
			}
		} 

abaixo segue a imagem do resultado deste código com um marcação no campo do Arquivo ao qual está retornando apenas a String:

 

ohod4k.png

 

 

Desde já meu muito obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu tenho quase certeza de que o arquivo em si não está no banco, mas apenas seu nome mesmo.
Até porque, além de imagens, mesmo sendo algo que eu seja contra, eu nunca vi ninguém guardar arquivos meso em BD, transformados em binários ou base64.

Muito provavelmente o sistema a qual pertence o banco local armazene apenas o nome do arquivo, e internamente use-o para chamar o arquivo "fisicamente", que está alocado em alguma pasta dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu tenho quase certeza de que o arquivo em si não está no banco, mas apenas seu nome mesmo.

Até porque, além de imagens, mesmo sendo algo que eu seja contra, eu nunca vi ninguém guardar arquivos meso em BD, transformados em binários ou base64.

Muito provavelmente o sistema a qual pertence o banco local armazene apenas o nome do arquivo, e internamente use-o para chamar o arquivo "fisicamente", que está alocado em alguma pasta dele.

 

sim amigo eles estão em uma pasta do sistema, minha dúvida seria como resgatar o arquivo via FTP para passar ele no importador.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentar resgatar os arquivos, lhe gerará inúmeras exceções:

 

- O arquivo possui o caminho completo?

- Qual é o root para o caminho relativo?

- Todos os caminhos relativos possuem o mesmo root?

 

Quando o registro é inserido apenas o caminho (ou parte dele), a responsabilidade de gerenciamento do arquivo é da aplicação, e não mais do SGBD. Outros fatores como criptografia/descriptografia podem estar embutidos na aplicação.

 

Dessa forma, qual a necessidade de resgatar o arquivo, sendo que a responsabilidade do SGBD está sendo mantida (possuir a referência, ou parte dela, para o arquivo)?

 

Se o formato fosse LOB (blob, clob, etc..), a história seria outra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
×

Informação importante

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