ds211107 2016-05-13 15:33
浏览 72
已采纳

如何将变量传递给PHP图片

Motivated by this post https://security.stackexchange.com/questions/32852/risks-of-a-php-image-upload-form I want to display my images by

<?php $pathToPicture = "server/www/images/imagexyz1823014719102714123.png"; ?>

<img src="/resources/php/showImage.php"  >

where showImage.php is simply given by

<?php
header('Content-Type: image/jpeg');
readfile($pathToPicture);
?>

But how can I pass the variable $pathToPicture to showImage.php? I do not want to hard-code $pathToPictue into showImage.php.

  • 写回答

1条回答 默认 最新

  • douyo770657 2016-05-13 15:37
    关注

    Pass the path of image as get parameter to showImage.php script like.

    <?php $pathToPicture = "server/www/images/imagexyz1823014719102714123.png"; ?>
    
    <img src="/resources/php/showImage.php?pathToPicture=<?php echo $pathToPicture;?>"  >
    

    Here you can get passed variable from $_GET array:

    <?php
        header('Content-Type: image/jpeg');
        readfile($_GET['pathToPicture']);
    ?>
    

    I preferably suggest use of base64_encode and base64_decode for pathToPicture for this purpose. Also not expose the whole path of your images location openly like this. Have a look at below improved code

    <?php $pathToPicture = "imagexyz1823014719102714123.png"; ?>
    
    <img src="/resources/php/showImage.php?pathToPicture=<?php echo base64_encode($pathToPicture);?>"  >
    
    <?php
        $location = "server/www/images/";
        $image = !empty($_GET['pathToPicture']) ? base64_decode($_GET['pathToPicture']) : 'default.jpg';
    
        // In case the image requested doesn't exist.
        if (!file_exists($location.$image)) {
            $image = 'default.jpg';
        }
    
        header('Content-Type: '.exif_imagetype($location.$image));
        readfile($location.$image);
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)