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

Link para arquivo no BD


a_xavier33

Pergunta

Olá a todos os Membros e Moderadores deste forum

Gostaria de solicitar uma ajuda de vocês.Estou montando um HELPDESK e nele tenho um campo anexo onde o usuário

(HELPDESK) ira anexar o arquivo de erro no sistema ERP que a empresa tem, e ao anexar este arquivo o HELPDESK irá gravar no BD (MySQL). Até este momento eu consegui fazer,o meu problema agora é que gerei um relatorio deste atendimento e no campo anexo coloquei um link para que eu e meu superior pudessemos ver este arquivo que pode ser doc ou jpg, contem o link mas não consigo baixar o arquivo para posterior visualização.Detalhe ao gravar no Banco de Dados é gravado o caminho da imagem , não sei isso tem alguma coisa haver por exemplo C:\problema 1.jpg

Gostaria de saber de vocês como posso fazer para gravar na base e que o link gere um download para que possamos visualizar este arquivo. Colocarei alguns pedaços do script para vocês poderem me ajudar.

Este é o trecho onde o usuário irá anexar o arquivo

<td width="92" bgcolor="<?php echo $cor_bg_tit_campos ?>"><div align="right"><font size="1" face="verdana" color="<?php echo $cor_titulos_campos ?>"><b>Anexar: </b></font></div></td>

<td width="300" bgcolor="<?php echo $cor_bg_dados_inputs ?>">  

<input type="file" name="anexo" value="<?php echo $oRow->inv_anexo ?>"></td>

Este é o script onde o PHP insere o arquivo no BD

mysql_connect($Host, $Usuario, $Senha);

mysql_select_db($Base);

$sQuery = "insert into inventario (inv_anexo)

values ('', '" . $HTTP_POST_VARS["anexo"] . "',)" OR DIE (mysql_error());

E este é o script onde faço um select e ponho o link no campo anexo

<td width="78">

<div align="left"><font color="#990000" size="1" face="Georgia, Times New Roman, Times, serif"><b> Anexo

</b></font></div> </td>

<td><?php echo"<a href='$oRow->inv_anexo'><font color=\"$cor_dados\"><b>$oRow->inv_anexo</b></font></a>";?></td>

Conforme mencionei acima não consegui obter sucesso com estes scripts, Necessito da ajuda de vocês para que eu possa colocar meu HELPDESK no ar.....

Desde já agradeço e conto com a ajuda de todos.....

a_xavier33

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

5 respostass a esta questão

Posts Recomendados

  • 0

Basicamente você tem que fazer a consulta no BD (no caso o link pode ter o ID onde está gravado o dado no BD)... e depois ler o que vier e ai informar o cabeçalho pro navegador saber do que se trata... eu tinha um link muito bom pra isso, procurando rápido achei isso -> http://forums.devarticles.com/mysql-develo...blem-29729.html

Link para o comentário
Compartilhar em outros sites

  • 0

Muito Obrigado meu amigo ESerra,

Mas tem um probleminha eu não sei bem se entedi o conteudo certo, eu devo colocar esta cabeçalho onde?

Sou novato em PHP estou engatinhando ainda , não sei o que escreverei esta certo, mas vou arriscar .

$size = 3000000;

$type = "image/doc", "image/jpg", "image/jpeg";

header("Content-Disposition:attachment; filename=\"$inv_anexo\"");

header("Content-length: $size");

header("Content-type: $type");

Não sei se estou no caminho certo, mas foi mais ou menos o que eu entendi.

Agradeço a todos pela paciencia....

a_xavier33

Link para o comentário
Compartilhar em outros sites

  • 0

$type -> Você tem que especificar o mime-type exato do arquivo, não é pra listar todos os possíveis, provavelmente você vai ter que guardar essa informação no BD para poder resgastar...

$inv_anexo -> Vai ser o que vier do campo blob...

Só que se você tivesse lido, teria notado que o post inicial trás um problema, logo, deveria ter usado o que foi postado logo abaixo...

Link para o comentário
Compartilhar em outros sites

  • 0

ESerra o codigo abaixo é o que você falou no seu post anterior que era para mim pegar?

// Output the correct headers to force the 'download' option
header("Content-Type: application/pdf"); // seems to work for IE and NS
header("Content-Disposition: attachment; filename=document.pdf");
header("Content-Length: ".filesize($file));
header("Accept-Ranges: bytes");
header("Pragma: no-cache");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-transfer-encoding: binary");
Não saco muito de ingles será que daria para você me ajudar em alguns assuntos 1 - Eu não entendi muito bem tem como você colocar tipo um comentario neste codigo para que eu possa interpreta-lo melhor? 2 - Onde é que eu vou colocar este codigo apos a conexão com banco? Olha como eu entendi este codigo
header("Content-Type: application/jpg"); //    aqui eu defino qual o tipo de aplicação o link vai abrir?
header("Content-Disposition: attachment; filename=document.jpg");//       aqui estabeleço o tipo de arquivo?
header("Content-Length: ".filesize($inv_anexo));//       aqui colocarei o campo do BD onde esta o arquivo anexo?
header("Accept-Ranges: bytes");//       não sei o que significa
header("Pragma: no-cache");//   não sei o que significa
header("Expires: 0");//              não sei o que significa
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");//    não sei o que significa
header("Content-transfer-encoding: binary");//   não sei o que significa

Por favor solicito a gentileza de se possível for me ajudarem com esta etapa do meu codigo.

Desde já agradeço atenção....

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