【问题标题】:I get a broken image icon for the output我得到一个损坏的输出图像图标
【发布时间】:2013-12-27 09:22:41
【问题描述】:

我知道它正在访问该目录,因为那里有正确数量的损坏图标。即使alt='Image not there' 也不起作用,它只会扩大其所在的元素,但不显示任何文本。我尝试了其他脚本,它显示了alt='Image not there',但仍然给出了一个损坏的图像图标。我还尝试简单地从文件夹中回显图像,但图像图标仍然损坏,那我做错了什么?它甚至是脚本还是发生了什么?

 <?php
 $dirname = "C:/uploads/";
 $images = scandir($dirname);
 shuffle($images);
 $ignore = Array(".", "..");
 foreach ($images as $curimg) {
     if (!in_array($curimg, $ignore)) {
         echo "<li><a href='".$dirname.$curimg."'>
         <img src='img.php?src=".$dirname.$curimg."&w=300&zc=1' alt='Image not working' /></a></li>\n ";
      }
 } 
 ?>

【问题讨论】:

  • 尝试使用相对路径显示图片目录/文件

标签: php html


【解决方案1】:

您应该在此处提供 URL 而不是本地路径:

   echo "<li><a href='".$dirname.$curimg."'>

   <img src='img.php?src=".$dirname.$curimg."&w=300&zc=1' alt='Image not working' /></a>

$dirname 外部世界无法访问,应该是这样的:

www.my.domain.com/uploads/

【讨论】:

  • 他得到正确数量的损坏图标这一事实表明该路径被正确访问。
  • SCRIPT 可以读取目录。用户不能: 您提供图像文件/链接的 URL。您提供了脚本的服务器路径。网络编程 101..
【解决方案2】:

您需要在您的(如果您在本地计算机上工作)本地服务器站点文件夹中创建一个文件夹。因为 PHP 是一种服务器端脚本语言。 所以只有文件才能正确移动到您的文件夹中。那么你可以简单地调用

<?php
$dirname = "uploads/";
    $images = scandir($dirname);
    shuffle($images);
    $ignore = Array(".", "..");
    foreach($images as $curimg){

        if(!in_array($curimg, $ignore)) {
echo "<li><a href='".$dirname.$curimg."'>
<img src='img.php?src=".$dirname.$curimg."&w=300&zc=1' alt='Image not working' /></a></li>\n ";
            }
        } 
?>

如果你从本地机器调用图像,它不是一个逻辑。因为你正在建立网站。本网站不仅显示您的系统。它显示了所有系统。也所有系统都不包含上传文件夹。

【讨论】:

  • 谢谢这是问题所在,也有道理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-29
  • 2021-04-01
  • 1970-01-01
  • 2021-01-11
  • 2015-12-11
  • 2014-08-08
  • 2012-02-09
相关资源
最近更新 更多