【问题标题】:valid image location not displaying the image有效的图像位置不显示图像
【发布时间】:2016-02-24 01:56:29
【问题描述】:

我第一次将我在 php 和 mysql 上的工作从 localhost 转移到一个名为 1freehosting 的免费网络主机上。我在显示个人资料图像时遇到了问题。虽然它可以在 localhost 上工作,但由于某种原因,图像不是通过我自己的域输入时显示。

为了检查位置,我分别回显了图像位置,我得到了图像的确切位置

<?php echo 'image location : '.$data->imagelocation; ?> //打印图像位置: /home/u377815502/public_html/main/practice/users/1702f756/profile image/P_20151210_191940_BF.jpg 这是我的图片位置

但图像未显示在我的图像标签内

   <img style='width:200px;height=200px;' src='<?php echo $data->imagelocation; ?>' title='<?php echo $loggerData->username; ?>'>

这可能是什么原因?我该如何解决这个问题?谢谢:)

【问题讨论】:

  • 打印出来的img-element是什么样子的?
  • 它是一个小图标,我们通常在图像显示不正确时得到它
  • 如果你看源代码..
  • 我认为你没有完成评论

标签: php html mysql image


【解决方案1】:

发生这种情况是因为您的图像路径/home/u377815502/...服务器端 路径。把它放在你的网络浏览器的地址栏中,它就不起作用了。

您需要回显一个浏览器可以使用的http://... URL。

从路径来看,它可能需要类似于:

http://[your-app-hostname]/main/practice/users/1702f756/profile image/P_20151210_191940_BF.jpg

或者您可以将其设为相对 URI。这里有一些粗略的代码可能会有所帮助:

<?php
// This appears to be your www root. Change it if needed
$wwwRoot = "/home/u377815502/public_html";

// This strips out the server-side www root from your image path, leaving a relative path
$imageUri = str_replace($wwwRoot, "", $data->imagelocation);
?>

<img src='<?php echo $imageUri ?>'/>

【讨论】:

  • 那是因为$data-&gt;imagelocation 仍然以/home/u377/... 开头。您需要查看您的源代码(在浏览器中生成的 HTML 代码),您就会明白为什么该 URL 不起作用。
  • @AL-zami 如果您在自己的本地计算机上运行它,则语法为http://localhost/folder/file.php。我怀疑$data 在这里是“localhost”或“example.com”。您需要附加到它。
  • 仍然不清楚....我省略了一个反斜杠并尝试了这个..类似的结果 imagelocation; ?>
  • @AL-zami 这绝对行不通。在 PHP 中执行此操作之前,也许只是在浏览器中使用 URL?首先,您可以手动在浏览器中加载个人资料图像。然后查看该 URL,它将帮助您了解此处需要发生的事情。
  • @AL-zami 也看到我更新的答案。最后的粗略代码应该可以帮助您了解需要更改的内容。
【解决方案2】:

我认为您的“localhost”(您可以在 apache config 上配置此路径..)startpublic_html 内,所以试试这个。

 <img style='width:200px;height=200px;' src='localhost/main/practice/users/1702f756/profile image/P_20151210_191940_BF.jpg' >

【讨论】:

    【解决方案3】:

    试试这个代码。这是有效的。

    <?php
    
    // This appears to be your www root. Change it if needed
    $wwwRoot = "/home/u377815502/public_html/";
    
    // This replaces your local system path to your absolute domain path
    $imageUri = str_replace($wwwRoot, "http://[YOURDOMAIN.COM]/", $data->imagelocation);
    ?>
    
    <img src='http://<?php echo $imageUri  ?>'/>
    

    请注意,这只会在您的网络主机上加载图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多