RodriguesRJ

Membros
  • Content Count

    2
  • Joined

  • Last visited

Community Reputation

0 Neutro

About RodriguesRJ

  1. Bom dia, criei um pequeno sistema em PHP de inserção de arquivos PDF numa base de dados PostgreSQL. Como o sistema é pequeno, não terei problemas de performance e preocupação com backups em diretório ou se alguém vai deletar a imagem no diretório. O tipo de dado do PostgreSQL que insiro o arquivo é o Bytea. No computador de casa, realizo o upload normal, o arquivo abre normal, mas no notebook e computador do trabalho ficam corrompidos. Uma coincidência é que nos computadores que dão erro, o sistema operacional é de 64BITs e consequentemente os programas instalados tem uma versão diferente. O erro que acontece é o seguinte: O arquivo fica corrompido e o PDF não consegue realizar a leitura. Pois bem, realizei o teste da funcionalidade do sistema em 3 computadores distintos. Dos 3 computadores, em apenas 1 computador, funcionou corretamente. Segue a configuração dos computadores: Desde já agradeço se alguém puder me ajudar. Obrigado
  2. Senhores, boa tarde. Estou iniciando na linguagem PHP. Preciso desenvolver uma pequena aplicação que guarde no banco de dados PostgreSQL arquivos em PDF. Depois da inserção, realizar a consulta. Informações: 1. O Campo que receberá o arquivo PDF no Postgresql tem que ser do tipo Bytea; 2. Meu sistema operacional é Windows 10; 3. Meu PostgreSQl é o 9.6, pgadmin 4; 4. Como servidor, utilizo o WampServer; e 5. A inserção até funciona, pelo menos quando consulto no Postgres aparece o nome do arquivo na base de dados, mas para realmente saber se ele está lá, preciso consultá-lo, mas não consigo fazer a consulta. ATENÇÃO: Sei que não é a melhor prática, salvar arquivos no BD, que o melhor a fazer era salvar o caminho e guardar os arquivos em diretórios, porém o sistema não é gigante e os arquivos são pequenos, por isso não terei problemas com desempenho do Banco entre outros, portanto, não precisa responder apenas que não é uma boa prática, preciso de uma solução e agradeço a todos pela colaboração... Seguem meus códigos: Tenho no Banco de Dados a seguinte estrutura: (É apenas um ambiente de testes, os campos reais serão diferentes) BD_Revista Tabela tb102_documento colunas: documentoid serial revistaid integer codsecao character(2) documento bytea formulario.html <HTML> <HEAD> <TITLE>Formulário de Cadastro</TITLE> </HEAD> <BODY> <center> <form name = "frmCadastro" method="POST" action = "cadastrar.php"> Documento:<input type="text" size="20" name = "documentoid"><BR> Revista: <input type="text" size="20" name = "revistaid"><BR> Codigo da Seção:<input type="text" size="20" name = "codsecao"><BR> Documento: <input type="file" name = "documento"><BR> <input type="submit" value="Gravar"> </form> <center> </BODY> </HTML> cadastrar.php <?php //Verifica se existe o arquivo executa.php para poder incluí-lo if (file_exists("executa.php")){ include("executa.php"); } if (!file_exists("executa.php")){ $msgErro = "<center><font color='#FF0000'><b>"; $msgErro .= "Não será possível executar nenhuma ação no Banco de Dados!<br>"; $msgErro .= "Porque não existe o arquivo 'executa.php'."; $msgErro .= "</b></font></center>"; echo "<br><br>"; echo $msgErro; echo "<br>"; exit; } //recebendo os dados do formulário $documentoid = $_POST['documentoid']; $revistaid = $_POST['revistaid']; $codsecao = $_POST['codsecao']; $documento = $_POST['documento']; //if ($revistaid == ""){ // echo "<center>O codigo id da revista deve ser informado!</center>"; // echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'javascript:history.go(-1)'></center>"; //} //if ($nroano == ""){ // echo "<center>O ano deve ser informado!</center>"; // echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'javascript:history.go(-1)'></center>"; //} //Montando a String de SQL $Sql = "Insert into tb102_documento(documentoid, revistaid, codsecao, documento) values('$documentoid', '$revistaid', '$codsecao', '$documento')"; //Chamando a função, e passando como parâmetro a String de SQL $Resultado = executa($Sql); if ($Resultado){ echo "<center>Cadastro efetuado com sucesso!</center>"; echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'javascript:history.go(-1)'></center>"; } ?> executa.php <?php function executa($Sql){ //Testando se existe o arquivo if (file_exists("conecta.php")){ include("conecta.php"); } if (!file_exists("conecta.php")){ $msgErro = "<center><font color='#FF0000'><b>"; $msgErro .= "Não foi possível conectar ao banco de Dados<br>"; $msgErro .= "Porque não existe o arquivo 'conecta.php'."; $msgErro .= "</b></font></center>"; echo "<br><br>"; echo $msgErro; exit; } $Resultado = pg_query($conectabd,$Sql); pg_close($conectabd); return $Resultado; } ?> conecta.php <?php $conectabd = pg_connect("dbname = BD_Revista port = 5432 host = localhost user = postgres password = 159-*/rpg"); if ($conectabd) { //Caso queira Imprimir na Tela a mensagem, retirar o comentário echo "Conectado com: " . pg_host($conectabd) . "<br/> "; } else { echo pg_last_error($conectabd); exit; } ?> formconsulta.html <HTML> <HEAD> <TITLE>Formulário de Cadastro</TITLE> </HEAD> <BODY> <center> <form name = "frmConsulta" method="POST" action = "consultar.php"> Documento:<input type="text" size="20" name = "documentoid"><BR> Revista: <input type="text" size="20" name = "revistaid"><BR> Codigo da Seção:<input type="text" size="20" name = "codsecao"><BR> Documento: <input type="text" name = "documento"><BR> <input type="submit" value="Pesquisar"> </form> <center> </BODY> </HTML> consultar.php -> este arquivo está errado, preciso de uma LUZ exatamente na parte da consulta, tanto no php como no html <?php $varSQL = "select documentoid, revistaid, codsecao, documento from tb102_documento"; $varConexao = pg_connect("dbname = BD_Revista port = 5432 host = localhost user = postgres password = 159-*/rpg"); $varResultado = pg_query($varConexao,$varSQL); // $varObjeto = pg_fetch_object ($varResultado,0); if ( $varResultado ) { while ( $varLinha = pg_fetch_array($varResultado) ) { $varConteudo = base64_decode("'".$varLinha[1]."'"); $varArquivo = fopen($varLinha[0],"w"); fwrite($varArquivo,$varConteudo); fclose($varArquivo); echo " <tr> " . " <td width='50%'>" . $varLinha[0] . "</td>" . " <td width='50%'><img src='" . $varLinha[0] ."'></td>" . " </tr> "; } } else { //echo "Erro na leitura<br>"; } ?> Desde já eu agradeço a colaboração de todos...