Permitir que os usuários baixem arquivos fora da raiz da web
Olá, estou usando o PHP para permitir que os usuários enviem arquivos e os tenho em uma pasta fora da pasta webroot (/ var / www) por motivos de segurança. Está na pasta / var / uploads. Um usuário carrega arquivos para registros específicos. Depois que os arquivos enviados são movidos para a pasta de uploads, o endereço do anexo é armazenado no banco de dados. Agora, sempre que um usuário verifica o registro, os anexos para o registro específico serão exibidos para downloads.
Como eles estão fora da raiz da web, não consigo baixá-los, pois eles teriam um URL de
http: //localhost/var/uploads/attachment.txt
Temos uma solução ou as pastas para download devem ser diretórios filhos do webroot?
<?php
$con = mysql_connect("localhost","id","pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("db", $con);
$result = mysql_query("select * from attachments");
while($row = mysql_fetch_array($result))
{
echo '<a href="'.$row[2].'" target="_blank">Download</a>--'.$row[3].'<br>';
}
mysql_close($con);
?>
é o código que estou usando. O proprietário da pasta é www-data: / ou o servidor da web. Portanto, não deve haver problemas de acesso.