我正在尝试从文件夹(.htaccess protected)中读取多个图像文件,并使用php readfile()在HTML页面中显示。
问题是我只能看到第一张图片被读取而下一张图片未在浏览器中显示。代码如下
<?php
$image1 = 'files/com_download\256\50\www\res\icon\android\icon-36-ldpi.png';
$image2 = 'files/com_download\256\50\www\res\icon\android\icon-48-mdpi.png';
$imginfo = getimagesize($image1);
header("Content-type: ".$imginfo['mime']);
readfile($image1);
$imginfo = getimagesize($image2);
header("Content-type: ".$imginfo['mime']);
readfile($image2);
?>
我可以看到第一张图片'icon-36-ldpi.png'已在浏览器中成功阅读并显示,第二张图片未被阅读,也未在浏览器中显示。
我错过了什么吗?请任何建议。
很抱歉,如果我做的很愚蠢,但要求是读取多个图像文件并在浏览器中渲染,就像网格视图一样。由于安全原因,我不能使用img标签。
答案 0 :(得分:1)
您无法一次性转储这两张图片。为什么不在你的html中制作两个图像,以便浏览器对你的脚本进行两次调用。然后使用GET参数传递要显示的文件名。
--- ---编辑
重要安全提示
有一个攻击向量,当你这样做时会打开它。有人可以轻松查看您的源html并更改参数以使您的图像脚本输出他们想要的任何文件。他们甚至可以使用“../../”上传目录并搜索存在的众所周知的文件。例如“../../../wp_config.php”。现在,攻击者拥有您的wordpress数据库凭据。防止这种情况的正确方法是始终正确验证输入参数。例如,仅在文件名以“.jpg”
结尾时才输出