0

似乎无法让 php 脚本执行并获取图像脚本,图像 placeholder.jpg 位于 public_html webroot 之外,这就是我所做的

显示图像 .php 文件

<img src="image.php?image=<?php echo urlencode('placeholder.jpg') ?>"/>

图像.php

<?php

    $file = basename(urldecode($_GET['image']));
    $fileDir = '/noaccess/avatars/';

    if (file_exists($fileDir . $file))
    {
        $contents = file_get_contents($fileDir . $file);

        header('Content-type: image/jpg');

        echo $contents;
    }

?>
4

1 回答 1

2

运行这种脚本是非常不安全的,因为你让黑客访问你的文件系统,记住他们可以../用来导航文件夹,但无论如何试试这个:

<?php

    $file = basename(urldecode($_GET['image']));
    $fileDir = $_SERVER['DOCUMENT_ROOT'] . 'noaccess/avatars/';

    if (file_exists($fileDir . $file))
    {
        $imageRes = imagecreatefromjpeg($fileDir . $file);
        header('Content-Type: image/jpeg');
        // Output the image
        @imagepng($imageRes);
        // Free up memory
        @imagedestroy($imageRes);
        die();
    }

?>
于 2013-05-01T22:58:39.190 回答