Ir para conteúdo

Arquivado

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

Marcelo Della Mea

Colocando documento em anexo...

Recommended Posts

Pessoal pela parte admin do meu site insiro notícias beleza.. como posso digamos deixar uma opção para um botão "procurar" para anexar um arquivo na juntamente com o texto da notícia ??alguem sabe ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso fazer o up load e enviar para a pagina beleza.. mas quero incluir no bd o arquivo para que quando a noticia seja exibida caso haja anexo ela exiba o ícone do anexo junto a notícia, ou seja a cada notícia sera um anexo .. qual o tipo que usarei no banco ? tipo nome file tipo=?? (blob?bigint?? ) não sei qual usarou seja meu cod eh esse <h2>Cadastro de nova notícia</h2><form><?if (empty($acao)){?><input type="hidden" name="opcao" value="cadNoticia" /><input type="hidden" name="acao" value="cadastrar" />Título<br /><input type="text" name="titulo" size="60" maxlength="60" /><br />Fonte<br /><input type="text" name="fonte" size="25" maxlength="21" /><br />Texto:<br /><textarea name="texto" class="tarea"></textarea><br /><br /><input type="submit" value="Cadastrar" class="sub"><br /><br />Buscar arquivo:<br /><input type="file" name="file" size="50"><br /> /* arquivo a ser inserido <input type="submit" value="carregar arquivo" class="sub"></form><?}else{ //$file == arquivo a ser carregado, mas não sei o tipo de arquivo que uso no banco, e se é possível fazer desta forma $sql = "insert into noticias values (null, '$titulo', '$texto', current_date(), current_time(), '$fonte', '$file')"; conecta(); mysql_query($sql) or die ("ERRO : ".mysql_error()); desconecta(); echo "<center>Registro Inserido com Sucesso</center>";}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não acho interessante salvar o arquivo propriamente dito no banco.. e sim so o nome.e com isso salvaria os arquivos numa pasta..

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas como vou salvar em uma pasta? tipo pq depois como o banco buscara pelo ip da noticia, como ele vai buscar na pasta o arquivo correto ?cada noticia e seus dados inclusive o anexo estara ligada a um id certo? como o sistema irá buscar na pasta um arquivo ? e como mando para a pasta . esse arquivo, porque assim a idéia eh guardar arquivos pequenos no banco (.doc .xls .ppt .pdf ) nada muito extenso apenas uma complementação da notícia

Compartilhar este post


Link para o post
Compartilhar em outros sites

na tabela de noticias, criaremos 2 campos chamados "anexo_caminho" e "anexo_nome", no "anexo_caminho" colocaremos o nome do arquivo que sera salvo na pasta ( um id unico )no "anexo_nome" o nome original do arquivo, este aparecerá para o usuário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom.. uma parte ta resolvida porem um problema.. o arquivo que esta listando coloquei como exemplo um arquivo txt.. quando abro a notícia ele esta lendo o arquivo e exibindo .. como faço para exibir um ícone ? ao invez de litar o conteúdo do arquivo

Compartilhar este post


Link para o post
Compartilhar em outros sites

suponhamos que a pasta onde esta o arquivo seja "anexo" na hora de mostrar a noticia ficara assim.. ( o link )<a href='anexo/$variavel['anexo_caminho']'> $variavel['anexo_nome'] </a>supondo que os campos anexo_nome e anexo_caminho existam na tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta até ai beleza.. só que você ta colocando o anexo com se fosse na sua máquina..sabendo que o arquivo esta em uma pasta qualquer, mas por exemplo minha admin. várias pessoas vão incluir notícias pois são da gerencia, então como eles vão cadastrar uma noticia e incluir um anexo.. depois que a noticia for listada o script não ira encontrar o caminho do arquivo pq o arquivo.não sei se estou me fazendo entender... ; / ou não to sacando oque você ta falandotipo no anexo caminho ira ficar por exemplo o caminho de um arquivo que eu anexei ok ex: c:\teste\arquivo.doc beleza (anexo caminho)com que ele vai exibir esse arquivo acessando fora da rede se estará buscando no c: descito acima.. ??e no caso anexo_nome é apenas o nome para exibição neh..

Compartilhar este post


Link para o post
Compartilhar em outros sites

"e no caso anexo_nome é apenas o nome para exibição neh.. "-- sim"tipo no anexo caminho ira ficar por exemplo o caminho de um arquivo que eu anexei ok ex: c:\teste\arquivo.doc beleza (anexo caminho)"-- nao.. o php ira tera a referencia da pasta do servidor e nao do cliente.. faça o teste e vera...ou se preferir.. coloque o endereço completo.. http;;;

Compartilhar este post


Link para o post
Compartilhar em outros sites

o Aquivo abre normal na minha máquina.. de um arquivo que eu insiro .. mas se abro o site de outra máquina ele não busca o arquivo consequentemente não acha..o arquivo mostrado, por exemplo o arquivo que ele esta buscando C:\apache\htdocs\phpmyadmin\intranet\eventos\Reunião RC 18.06.07.v2.ppt na máquina de onde foi inserido abre normal , mas de outra não ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui onde faz a busca<input type="hidden" name="MAX_FILE_SIZE" value="1000000">buscar arquivo: <input type="file" name="file"><br /><br />Nome do arquivo anexado : <input type="text" name="nome_anexo" size="25" maxlength="21" /> EX: Projeto.doc<br /><br />aqui o arquivo que exibeecho "<b>Anexo<img src='img/anexo.gif' />:</b> <a href='$file' target='blank'><b> $nome_anexo </b> </a> <br />";

Compartilhar este post


Link para o post
Compartilhar em outros sites

os arquivos anexados ficam soltos na pasta do script ??se nao altere <a href='$file' target='blank'><b> $nome_anexo </b> </a> <br />"; para<a href='NOMEDAPASTA/$file' target='blank'><b> $nome_anexo </b> </a> <br />"; e se ainda nao der.. poste o php que mostra a noticia e o anexo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

os arquivos estão em uma pasta com o nome c:\apache\htdocs\phpmyadmin\intranet\eventos\ $_GET["$id_noticia"];$sql = "select id_noticia, titulo, texto, date_format(data, '%d/%m/%Y') data, hora, fonte, file, nome_anexo from noticias where id_noticia = $id_noticia";$query = consultaSql($sql) or die (sql_error());if (temRegistro($query) == true) // se tiver registros na tabela{ while ($row = mysql_fetch_array($query)) { $id_noticia =$row["id_noticia"]; $titulo = $row["titulo"]; $texto = $row["texto"]; $data = $row["data"]; $hora = $row["hora"]; $fonte = $row["fonte"]; $file = $row["file"]; $nome_anexo = $row["nome_anexo"]; echo "<font color='#e1a900'> <b> - - : $titulo</b> </font> <div align='right'> Notícia Inserida dia <font color='#e1a900'> $data</font> ás <font color='#e1a900'> $hora <br></font> </div><br /> "; echo "<div align='justify'> $texto <br></div><br />"; echo "<font color='#e1a900'><b>Fonte:</b></font><em> $fonte </em> <br /> <br />"; echo "<b>Anexo<img src='img/anexo.gif' />:</b> <a href='$file' target='blank'><b> $nome_anexo </b> </a> <br />"; echo "..............................................................................................................<br />"; }}?> <div align="right"><ul id="menu_3"><li><a href="?view=listaNoticia"><b>Volta Notícias</b></a></li></ul> </div>o arquivo funciona somente se la no input eh colocado o endereço completo "http://localhosto/phpmyadmin/intranet/eventos/nomedoarquivo" se busca apenas pelo arquivo ele coloca como c:\apache\htdocs\phpmyadmin\intranet\eventos\arquivo dessa forma não abre

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que o imput manda pro php é apenas o nome do arquivo. nao se preocupe com isso.. la no procurar.. você vai procurar como se tivesse pegando um documento da pasta meus documentos...posta ai .. o codigo que salva o arquivo.. e dados.. por favor

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois ai é que esta a variavel $file esta pegando o caminho completo e não somente o nome do arquivo ja se colocado o caminho manual com http://.... ele abre beleza....ai vai o arquivo que puxa o arquivo (o formulario)<h2>Cadastro de nova notícia</h2><form><?if (empty($acao)){?><input type="hidden" name="opcao" value="cadNoticia" /><input type="hidden" name="acao" value="cadastrar" />Título<br /><input type="text" name="titulo" size="60" maxlength="60" /><br />Fonte<br /><input type="text" name="fonte" size="25" maxlength="21" /><br />Texto:<br /><textarea name="texto" class="tarea"></textarea><br /><br /><input type="hidden" name="MAX_FILE_SIZE" value="1000000">buscar arquivo: <input type="file" name="file"><br /><br />Nome do arquivo anexado : <input type="text" name="nome_anexo" size="25" maxlength="21" /> EX: Projeto.doc<br /><br /><br /><input type="submit" value="Cadastrar Dados" class="sub"></form><?}else{ $sql = "insert into noticias values (null, '$titulo', '$texto', current_date(), current_time(), '$fonte', '$file', '$nome_anexo')"; conecta(); mysql_query($sql) or die ("ERRO : ".mysql_error()); desconecta(); echo "<center>Registro Inserido com Sucesso</center>";}?>e aqui onde ele apresenta o oque o script acima gravou no banco<?php$_GET["$id_noticia"];$sql = "select id_noticia, titulo, texto, date_format(data, '%d/%m/%Y') data, hora, fonte, file, nome_anexo from noticias where id_noticia = $id_noticia";$query = consultaSql($sql) or die (sql_error());if (temRegistro($query) == true) // se tiver registros na tabela{ while ($row = mysql_fetch_array($query)) { $id_noticia =$row["id_noticia"]; $titulo = $row["titulo"]; $texto = $row["texto"]; $data = $row["data"]; $hora = $row["hora"]; $fonte = $row["fonte"]; $file = $row["file"]; $nome_anexo = $row["nome_anexo"]; echo "<font color='#e1a900'> <b> - - : $titulo</b> </font> <div align='right'> Notícia Inserida dia <font color='#e1a900'> $data</font> ás <font color='#e1a900'> $hora <br></font> </div><br /> "; echo "<div align='justify'> $texto <br></div><br />"; echo "<font color='#e1a900'><b>Fonte:</b></font><em> $fonte </em> <br /> <br />"; echo "<b>Anexo<img src='img/anexo.gif' />:</b> <a href='$file' target='blank'><b> $nome_anexo </b> </a> <br />"; echo "..............................................................................................................<br />"; }}?> <div align="right"><ul id="menu_3"><li><a href="?view=listaNoticia"><b>Volta Notícias</b></a></li></ul> </div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos la..

 

no arquivo de cadastro.. coloque isso:

 

<h2>Cadastro de nova notícia</h2><form><?if (empty($acao)){?><input type="hidden" name="opcao" value="cadNoticia" /><input type="hidden" name="acao" value="cadastrar" />Título<br /><input type="text" name="titulo" size="60" maxlength="60" /><br />Fonte<br /><input type="text" name="fonte" size="25" maxlength="21" /><br />Texto:<br /><textarea name="texto" class="tarea"></textarea><br /><br /><input type="hidden" name="MAX_FILE_SIZE" value="1000000">buscar arquivo: <input type="file" name="file"><br /><br />Nome do arquivo anexado : <input type="text" name="nome_anexo" size="25" maxlength="21" /> EX: Projeto.doc<br /><br /><br /><input type="submit" value="Cadastrar Dados" class="sub"></form><?}else{$nome_anexo   = $_FILES["file"]["name"];	// pega o nome original do arquivo$arquivo_id   = md5(uniqid(rand(), true));   // gera um id unico$arquivo_ext  = strrchr($_FILES['file']['name'], '.');  // pega a extenção do arquivo$arquivo_nome = $arquivo_id.$arquivo_ext;  // gera o nome do arquivo com id unicoif (move_uploaded_file($_FILES["file"]["tmp_name"],"eventos/".$arquivo_nome)) {	  $sql = "insert into noticias values (null, '$titulo', '$texto', current_date(), current_time(), '$fonte', '$arquivo_nome', '$nome_anexo')";	  conecta();	  mysql_query($sql) or die ("ERRO : ".mysql_error());	  desconecta();	  print "<center>Registro Inserido com Sucesso</center>";} else {	  print "<center><font color='#FF0000'><b>O arquivo não pode ser carregado.</b></font></center>";}}?>

 

no arquivo de listar isso:

 

<?php$id_noticia = $_GET['id_noticia'];$sql = "select id_noticia, titulo, texto, date_format(data, '%d/%m/%Y') data, hora, fonte, file, nome_anexo from noticias where id_noticia = $id_noticia";$query = consultaSql($sql) or die (sql_error());if (temRegistro($query) == true) // se tiver registros na tabela{while ($row = mysql_fetch_array($query)){$id_noticia =$row["id_noticia"];$titulo = $row["titulo"];$texto = $row["texto"];$data = $row["data"];$hora = $row["hora"];$fonte = $row["fonte"];$file = $row["file"];$nome_anexo = $row["nome_anexo"];echo "<font color='#e1a900'> <b> - - : $titulo</b> </font> <div align='right'>Notícia Inserida dia <font color='#e1a900'> $data</font> ás <font color='#e1a900'> $hora <br></font> </div><br /> ";echo "<div align='justify'> $texto <br></div><br />";echo "<font color='#e1a900'><b>Fonte:</b></font><em> $fonte </em> <br /> <br />";echo "<b>Anexo<img src='img/anexo.gif' />:</b><a href='eventos/$file' target='blank'><b> $nome_anexo </b> </a> <br />";echo "..............................................................................................................<br />";}}?><div align="right"><ul id="menu_3"><li><a href="?view=listaNoticia"><b>Volta Notícias</b></a></li></ul> </div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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