Listando diretório e gerando link de download dos arquivos encontrados.
Bom dia Pessoal,
Preciso de uma ajudar de vocês, e se poder explicar seria melhor ainda !
Estou com esse Código.
Ele busca em meu diretório e lista meus arquivos, no entanto eu preciso que esses mesmos arquivos encontrados ao ser clicado forcem o download, situação que não está a acontece. Minha pergunta é, como posso aprimorar esse script, para que quando o arquivos listado ao ser clicado ele faça o download dos arquivos ?
Preciso de uma ajudar de vocês, e se poder explicar seria melhor ainda !
Estou com esse Código.
<?php
$path = "uploads/";
$diretorio = dir($path);
echo "Lista de Arquivos do diretório '<strong>".$path."</strong>':<br />";
while($arquivo = $diretorio -> read()){
echo "<a href='".$path.$arquivo."'>".$arquivo."</a><br />";
}
$diretorio -> close();
?>
Ele busca em meu diretório e lista meus arquivos, no entanto eu preciso que esses mesmos arquivos encontrados ao ser clicado forcem o download, situação que não está a acontece. Minha pergunta é, como posso aprimorar esse script, para que quando o arquivos listado ao ser clicado ele faça o download dos arquivos ?
Aurélio Castro
Curtidas 0
Respostas
Eduardo Chaves
21/03/2017
Olá Aurélio, bom dia!
Você pode tentar criar uma pagina que vai receber os seus arquivos e fazer download, vamos chamar de download.php, veja abaixo:
download.php
e a pagina que você tem hoje ficaria assim:
lembrando que o arquivo download.php deve estar na mesma pasta do arquivo que lista seus arquivos.
um abraço.
Você pode tentar criar uma pagina que vai receber os seus arquivos e fazer download, vamos chamar de download.php, veja abaixo:
download.php
$arquivo = $_GET["arquivo"];
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.$arquivo.'"');
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($arquivo));
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Expires: 0');
// Envia o arquivo para o cliente
readfile($arquivo);
e a pagina que você tem hoje ficaria assim:
<?php
$path = "uploads/";
$diretorio = dir($path);
echo "Lista de Arquivos do diretório '<strong>".$path."</strong>':<br />";
while($arquivo = $diretorio -> read()){
echo "<a href='download.php?arquivo=$path.$arquivo'>".$arquivo."</a><br />";
}
$diretorio -> close();
?>
lembrando que o arquivo download.php deve estar na mesma pasta do arquivo que lista seus arquivos.
um abraço.
GOSTEI 0