【问题标题】:Show picture from ftp server inside of website [duplicate]显示来自网站内部 ftp 服务器的图片 [重复]
【发布时间】:2020-10-24 15:42:12
【问题描述】:

我在尝试在另一个网站内显示我的 FTP 服务器上的图片时遇到了巨大的麻烦。到目前为止,我一直在尝试的是在 iFrame 中显示图像。我的代码如下:

<body>

<?php
$pic = file_get_contents('ftp://username:password@servername.net/image.jpg');
echo "<iframe src=". $pic . "> </iframe>";
?>
</body>

当被问到这个问题时,这基本上是对其他用户有效的代码,但对我来说,它显示了一个带有以下消息的 iframe:

找不到

在此服务器上找不到请求的 URL。 Apache/2.4.29 (Ubuntu) 服务器位于 servername.net 端口 1234

我真的不知道该尝试什么了,因为我已经尝试了几乎所有我找到的解决方案,所以我希望你们中的任何一个知道如何帮助我。

【问题讨论】:

  • 那么 $pic 可能包含文件数据,而不是 URL。你检查过上面代码输出的生成的 HTML 吗?
  • 我猜这就是他尝试使用 iframe 的原因。

标签: php html apache ubuntu ftp


【解决方案1】:

$pic 包含图像数据。因此,您需要将其编码为图像。 此选项可能会降低旧版浏览器的速度。

您应该在标签中显示图像。您可以更好地结合 HTML 和 PHP:

<img src="data:image/jpeg;Base64,<?=base64_encode(file_get_contents('ftp://username:password@servername.net/image.jpg'));?>">

如果图片不可用,可以尝试清除浏览器缓存。如果您在 url 中添加随机参数,它将每次更新。我不推荐它,但如果你愿意,你可以这样做:

<img src="data:image/jpeg;Base64,<?=base64_encode(file_get_contents('ftp://username:password@servername.net/image.jpg?_t='.time()));?>">

【讨论】:

  • 嗯,它现在确实显示了一些东西,只是我很确定这不是我想要显示的图像。它显示了一个小正方形,里面看起来像是一张撕开的纸中间。如果有帮助,对于上面的代码,它会显示以下 html:。顺便说一句,我使用的是firefox作为浏览器,所以经过一些简短的研究,它似乎是他们的页面图标损坏。
  • 撕下的图标是错误图像。后面没有任何内容,表示图像真的不存在。你应该检查一下。
猜你喜欢
  • 1970-01-01
  • 2016-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-20
  • 1970-01-01
相关资源
最近更新 更多