为什么可以通过这种方式访问​​这些文件?

时间:2019-04-27 03:29:33

标签: php webserver

我有在网络服务器上运行的以下代码。

    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++;
    }

虽然流式处理代码时发生了一件非常奇怪的事情,但我注意到我并不需要像以前认为的那样对bases JPG进行base64编码。进一步说明...这些文件中的某些文件位于PAM用户中,文件位于Web文件夹的外部。像/ home / user / Pictures这样的文件夹。这些用户具有SESSION密码Variable PAM。由于某些原因,它按原样工作。我以为不会。

这没有我在/ home / user / Pictures中用于文件的base64编码

这听起来像是一个愚蠢的问题,但我认为无法从Web服务器访问这些,事实证明它们是可以解决的。

当我在本地计算机上运行它时,我并不担心它,但是还需要代码在其他计算机上工作。这就是我所关心的。

我很好奇,如果这是允许进行此设置的Apache设置或PHP设置,也许我可以保留elseif,它对诸如/ home / user / Pictures之类的文件夹中的PAM用户使用base64

在我的旧代码中,我总是不得不使用

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

然后将图像替换为$ b64image

那么,什么服务器选项导致此工作不起作用?

EDIT ____________________________________ 我做了几个简单的测试。我无法从此页面访问这些文件之一。我甚至将文件名放在路径变量中。

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

所以我的问题仍然是为什么上述代码为何有效?

0 个答案:

没有答案