从FTP检索图像到网页

mps*_*hat 6 html ftp webpage imagesource

我的ftp服务器中有一个包含多个图像的文件夹。我正在尝试访问并在网页中显示这些图像,例如

<img src="ftp://my_ftp_ip_address/Images/imagename.jpg"/>
Run Code Online (Sandbox Code Playgroud)

但它要求输入FTP用户名和密码。我该如何实现?也可以使用Java来做同样的事情吗?

Mar*_*ryl 5

使用最新版本的网络浏览器(Chrome 59Firefox 61),您甚至无法使用ftp://URL来检索图像。无论如何,这从来都不是一个好的解决方案。


正确的解决方案是将图像路由到您的Web服务器,不仅隐藏凭据,而且隐藏图像的原始来源。

创建一个用作图像源的脚本(PHP或您使用的任何其他脚本)(您将在<img src=...>属性中使用它。该脚本将通过从FTP服务器下载图像来“生成”图像)。

在PHP中(例如image.php)实现这种脚本的最简单的方法是:

<?

header('Content-Type: image/jpeg');

echo file_get_contents('ftp://username:password@ftp.example.com/path/image.jpg');
Run Code Online (Sandbox Code Playgroud)

然后在HTML中使用它,例如:

<a src="image.php" />
Run Code Online (Sandbox Code Playgroud)

(假设的image.php位置与HTML页面位于同一文件夹中)


该脚本使用FTP URL包装器。如果您的Web服务器上不允许这样做,则必须更努力地使用FTP功能。请参见 PHP:如何将文件从FTP服务器读取到变量中?


虽然一个真正正确的解决方案,你应该提供相关文件,像一些HTTP头Content-LengthContent-TypeContent-Disposition。为此,请参见通过PHP脚本从FTP服务器将文件下载到具有Content-Length标头的浏览器,而不将文件存储在Web服务器上

  • 我喜欢它,因为它解决了使用ftp的问题,并且避免了将图像移动到其他位置。 (2认同)