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.

questionAnswers(3)

yourAnswerToTheQuestion