Здравствуйте. Я использую PHP, чтобы позволить пользователям загружать файлы, и я храню их в папке вне папки webroot (/ var / www) по соображениям безопасности. Он находится в папке / var / uploads. Пользователь загружает файлы для определенных записей. После того, как загруженные файлы перемещены в папку загрузки, адрес вложения сохраняется в базе данных. Теперь, когда пользователь проверяет запись, вложения для конкретной записи будут отображаться для загрузки.
Так как они находятся вне webroot, я не могу загрузить их, так как их URL будет
http://localhost/var/uploads/attachment.txt
Есть ли у нас решение или это загружаемые папки должны быть дочерними каталогами 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);
?>
- это код, который я использую. Владелец папки - www-data: / или веб-сервер. Так что не должно быть проблем с доступом.