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

Peguar Arquivo Do Banco De Dados


siabreu

Pergunta

Olá a todos,

Fiz um script para guardar arquivos .pdf no bando de dados. Utilizei o tipo longblob. Aparentemente funcionou.

Gostaria agora é de peguar os arquivos que foram para o banco e criar uma página de links, para quando o usuário clicar no link o arquivo seja copiado para sua máquina.

formulário que envia o arquivo para banco

   
<html>
<body>
<form enctype='multipart/form-data' method="POST" action="envia.php">
    arquivo:  <input name="file" type="file" size="20" > <p>
    <input type="submit" value="Enviar">
</form>
</body>
</html>
script envia.php
<?php

conectar();

/*RECEBE OS DADOS DO CAMPO $_FILES
nome temporário no servidor*/
$arq_temp = $_FILES['file']['tmp_name'];
/*nome do arquivo na máquina do usuário*/
$arq_name = $_FILES['file']['name'];
/*Tamanho do arquivo*/
$arq_size = $_FILES['file']['size'];
/*tipo mime do arquivo*/
$arq_type = $_FILES['file']['type'];

if($arq_type == 'application/pdf')
{

 mysql_query("INSERT INTO tb_teste(artigo) VALUES ('$arq_name')") or die ("erro de sql: ".mysql_error());
 echo "guardou!!!";

}else    {
echo "Erro...";
         }
?>
O problema está nesse script, não funciona, não sei como fazer!! script para gerar os links
<html>
<body>
<?
  $conexao=mysql_connect("localhost","root"," ");
  mysql_select_db("rct",$conexao);

  $sql="select * from tb_teste ORDER BY login ASC";
  $QUERY=mysql_query($sql,$conexao);
//  echo "<select name='lista' size='1'>";
  echo "Arquivos do banco";

  while (($array=mysql_fetch_array($QUERY))!=null )
  {
     echo "<a href="$array[0]" title="artigos banco" target="_blank">$arry[0]/a>"
  }
?>
</body>
</html>

alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Cara, to com um problema parecido e tals, mas eu to tentando enviar para o servidor... pelo que eu olhei no teu código, tu estás enviando somento o nome do arquivo... antes tu tens q movê-lo ou copiá-lo para algum diretório ou então tente envair a variável $arquivo com o array inteiro...

Vale lembrar, arquivos pdf, imagens, ou qualquer outro é muito pesado para o bd, teu bd vai ficar enorme, o ideal seria tu enviar o arquivo para uma pasta e colcoar no bd somente o caminho para essa pasta...

Espero ter ajudado ae...

ahhh, me diz para onde aponta o link??? E olha no bd tb e v o q salvou lá, se realmente foi só o nome e tals...

agora sim falo heheh

Editado por lemissel
Link para o comentário
Compartilhar em outros sites

  • 0

Olá,

o que preciso mesmo é copiar o arquivo inteiro para o BD, mesmo que fique pesado.

Então, na realidade não estou enviando o arquivo? como posso fazer isso?

para fazer o link, pesquisei e fiz assim:

<html>
<body>
<?php
  $conexao=mysql_connect("localhost","root","");
  mysql_select_db("rct",$conexao);

  $query="select cod, artigo from tb_teste ORDER BY cod ASC";
  $resultado = mysql_query($query,$conexao);
  while ($linha = mysql_fetch_array($resultado)) {
?>
   <tr>
      <td><? echo $linha['cod']; ?></td>
      <td><? echo $linha['artigo']; ?><BR></td>
   </tr>
   <tr>
      <td><a href='<?php $linha['artigo'] ?>' target="_blank"> <? echo $linha['artigo'] ?> </a> </td>
   </tr>
   <?
}
?>
</body>
</html>

Realmente, só tem o nome do arquivo no banco. Como copiar o arquivo para o banco?

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta n testar o array q é enviado, tenta mandar somente o $file, mas eu achoq tu teras q mover antes nem q tu apague depois... vou dar uma pesquisada nisso...

o problema n é no código q faz o selet e sim no q faz o insert...

tens q enviar o arquivo todo e n só o nome dele...

tenta ae faloo

mysql_query("INSERT INTO tb_teste(artigo) VALUES ('$file')") or die ("erro de sql: ".mysql_error());

echo "guardou!!!";

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...