将图像从FTP检索到网页

时间:2013-06-18 12:47:10

标签: html ftp webpage imagesource

我的ftp服务器中有一个包含多个图像的文件夹。我正在尝试访问并在

这样的网页中显示这些图像
<img src="ftp://my_ftp_ip_address/Images/imagename.jpg"/>

但它要求输入FTP用户名和密码。我怎样才能做到这一点?也可以使用Java做同样的事情吗?

3 个答案:

答案 0 :(得分:4)

使用最新版本的网络浏览器(Chrome 59Firefox 61),您甚至无法使用[Required] [Range(1, int.MaxValue)] // for minimum value [LessThanOrEqualTo("POTotalQuantity", ErrorMessage = "The quantity must be less than or equal to the value of POTotalQuantity")] public int Quantity { get; set; } 网址来检索图片。无论如何,它从来都不是一个好的解决方案。

正确的解决方案是通过您的网络服务器路由图像,不仅隐藏凭据,还隐藏图像的原始来源。

创建一个充当图像源的脚本(PHP或您使用的任何其他脚本)(您将在ftp://属性中使用它。脚本将通过从FTP服务器下载来“生成”图像。

在PHP中实现这样一个脚本最简单的方法(比如<img src=...>)是:

image.php

然后你在HTML中使用它:

<?

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

echo file_get_contents('ftp://username:password@ftp.example.com/path/image.jpg');

(假设<a src="image.php" /> 与HTML页面位于同一文件夹中)

该脚本使用FTP URL wrappers。如果您的Web服务器上不允许这样做,您必须更加努力地使用FTP功能。看到 PHP: How do I read a file from FTP server into a variable?

虽然对于一个非常正确的解决方案,您应该提供一些与该文件相关的HTTP标头,例如image.phpContent-LengthContent-Type。为此,请参阅Download file via PHP script from FTP server to browser with Content-Length header without storing the file on the web server

答案 1 :(得分:2)

您告诉浏览器使用ftp协议访问图像,这就是它尝试登录的原因。

将ftp://更改为http://(如果使用ssl,则更改为https://)以访问图像。

您可以在场景中添加用户名和密码到图像中,但这样每个人都可以查看您的代码并登录到您的ftp服务器...不太安全;)

答案 2 :(得分:-1)

您可以尝试修改src属性,如下所示:

<img src="ftp://username:password@my_ftp_ip_address/Images/imagename.jpg"/>