Почему к этим файлам можно получить доступ таким образом? - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть следующий код, который работает на веб-сервере.

    if ($file == 'PDF')
    {
    echo '<tr><td><a name="'.$file.'"></a><a href="/'.$upath.'PDF/index.php"><img id="pdfImg" src="/images/PDF.png" alt="'.$file.'" style="z-index: 0; width:auto;max-width:500px;height:auto;max-height:500px"/></a><p><a href="/'.$upath.'PDF/index.php"><span style="color:#777AFF; font-weight:bold">'.$file.'</a></p></span></td><td><p><a href="/nodelete.php"><span style="color:#F44; font-weight:bold">'.$deletetxt.'</span></a></p>';
    $i++;       
    }


    elseif (($ext=='jpg') || ($ext=='jpeg') || ($ext=='png') || ($ext=='gif') || ($ext=='webp'))
    {
    echo '<tr><td colspan="3"><a name="'.$file.'"><hr></a><span style="color:#666; font-weight:bold"><p>'.$file.' '.$filesize.'KB<br/>'.$imgwidth.$seppx.$imgheight.$px.' '.$resolution.$dpitxt.'<br/>'.$imagewidthin.$sepin.$imageheightin.$inchestxt.$imagewidthcm.$sepcm.$imageheightcm.$centimeterstxt.'</p></span></td></tr><tr><td><img id="myImg" class="js-img" src="'.$file.'" alt="'.$file.'" style="z-index: 0; width:'.$filelistwidth.';max-width:'.$filelistmaxwidth.';height:'.$filelistheight.';max-height:'.$filelistmaxheight.'"/></td><td><p><a href="/delete.php?image='.$file.'"><span style="color:#F44; font-weight:bold">'.$deletetxt.'</span></a></p>';             
    $i++;
    }


    else
    {
    $i++;
    }

Во время потоковой передачи кода произошла ОЧЕНЬ странная вещь, и я заметил, что мне не нужно кодировать JPG в формате base64, как я раньше думал, что мне придется это сделать.Чтобы объяснить дальше ... Некоторые из этих файлов находятся в пользователях PAM с файлами вне веб-папки.Папки типа / home / user / Pictures.Это пользователи с паролем SESSION Variable PAM.Это работает как есть по какой-то причине.Я думал, что это не так.

Это без кодировки base64, которую я использовал для файлов в / home / user / Pictures

Это может звучать глупо, но я подумал, что это не такбыть доступным с веб-сервера, и оказывается, что они есть.

Поскольку я запускаю его только на локальной машине, меня это не беспокоит, но мне также нужен код для работы на других машинах.Это то, что меня беспокоит.

Мне любопытно, если это настройка Apache или настройка PHP, которая позволяет этому произойти, и, возможно, я мог бы сохранить elseif, который использует base64 для пользователей PAM, которые находятся в таких папках, как/ home / user / Pictures

В моем старом коде мне всегда приходилось использовать

$b64image = base64_encode(file_get_contents($_SESSION['userpath'].$file));

, затем заменить изображение на $ b64image

ТАК, какая опция сервера вызывает этоработать без него?

РЕДАКТИРОВАТЬ ____________________________________ Я сделал простой тест с несколькими вариантами.Я не мог получить доступ к одному из этих файлов с этой страницы.Я положил даже имя файла в переменной пути.

<html>
<head>
</head>
<body>
<?php
$path='/home/kodi/Pictures/scans/';
echo '<img src="'.$path.'Escan20190428221412.jpg">';
?>
</body>
</html>

Поэтому у меня остается вопрос, почему вышеупомянутый код работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...