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