Achei um tutorial que me ensinou como fazer o formulário de envio de arquivos e a listagem dos arquivos com link para download. Mas os códigos deram problema na hora do download do arquivo. Ou seja, o formulário está funcionando, pois consigo receber os arquivos enviados no meu banco de dados, mas não consigo exibir os links para download.
Se alguém puder me explicar como faço essa listagem, eu agradeço muito.
Question
jefponte
Achei um tutorial que me ensinou como fazer o formulário de envio de arquivos e a listagem dos arquivos com link para download. Mas os códigos deram problema na hora do download do arquivo. Ou seja, o formulário está funcionando, pois consigo receber os arquivos enviados no meu banco de dados, mas não consigo exibir os links para download.
Se alguém puder me explicar como faço essa listagem, eu agradeço muito.
link do formulário do site: http://gcsufc.com.br/ensaiomaffesoli.php
Aqui vai os códigos do site:
ensaiosmaffesoli.php //é o local onde fica o formulário e a exibição da lista de arquivos
<p>Aqui você pode enviar seu ensaio e contribuir para um contrução de um bloco com download de trabalhos de todos</p>
<form enctype="multipart/form-data" action="guardar_arquivo.php" method="post"><br>
Autor: <input type="text" name="titulo" size="30"><br>
Arquivo <input type="file" name="arquivo"><br>
<input type="submit" value="Enviar arquivo">
</form>
<hr>
<?php
$conexao = mysql_connect("localhost","oreidosl_root","minhasenha");
$banco = mysql_select_db("oreidosl_forum", $conexao);
$qry = "SELECT id, nome, titulo, tipo FROM arquivos";
$res = mysql_query($qry);
while($fila = mysql_fetch_array($res))
{
echo $fila['titulo'] . $fila['nome'] . ($fila['tipo']) . '<a href=baixar_arquivo.php?id=' . $fila['id] . '">Fazer Download</a>';
}
?>
guardar_arquivo.php//esse arquivo é responsável pela inserção dos dados e do arquivo no banco, está funcionando,
pois consigo acessar os arquivos enviados direto no phpmyadmin
<?php
$conexao = mysql_connect("localhost","oreidosl_root","minhasenha");
$banco = mysql_select_db("oreidosl_forum", $conexao);
$titulo = $_POST["titulo"];
$arquivo = $_FILES['arquivo']['tmp_name'];
$tamanho = $_FILES['arquivo']['size'];
$tipo = $_FILES['arquivo']['type'];
$nome = $_FILES['arquivo']['name'];
if ( $_FILES['arquivo']['error'] == 0 )
{
$fp = fopen($arquivo, "r");
$conteudo = fread($fp, $tamanho);
$conteudo = addslashes($conteudo);
fclose($fp);
$qry = "INSERT INTO arquivos(nome, titulo, conteudo, tipo) VALUES
('$nome','$titulo','$conteudo','$tipo')";
$resultado = mysql_query($qry) or die (mysql_error());
mysql_close($conexao);
echo "Dados inseridos com sucesso! Estamos redirecionando para a página inicial.";
}
else{
echo "Dados não foram inseridos com sucesso! Estamos redirecionando para a página inicial.";
}
?>
baixar_arquivo.php //Esse aqui é que eu num to conseguindo acertar. Me deram um código mais ou menos assim.
<?php
$conexao = mysql_connect("localhost","oreidosl_root","minhasenha");
$banco = mysql_select_db("oreidosl_forum", $conexao);
$qry = "SELECT tipo, conteudo FROM arquivos WHERE id=$id";
$res = mysql_query($qry);
$tipo = mysql_result($res, 0, "tipo");
$conteudo = mysql_result($res, 0, "conteudo");
header("Content-type: $tipo");
print $conteudo;
?>
-------
eu não sei se o problema está no link colocado na listagem ou no baixar_arquivo.php, só sei que não encontrei em lugar nenhum algo sobre isso.
Até onde está feito, aprendi nesse tutorial:
http://www.oficinadanet.com.br/artigo/1599...com_php_e_mysql
Por favor, me ajudem. Eu queria muito resolver isso.
Edited by jefponteLink to comment
Share on other sites
10 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.