繁体   English   中英

从ftp服务器(本地)获取图片以显示在网站上

[英]Getting pictures from an ftp server(locally) to display on website

我的图片放在网络上的ftp服务器上,并希望在我的网站上显示。

那怎么办?

之前我使用过("/Boats/{BoatId}/{ImageId} + "." + {ImageExtension")但是现在我的图片放在\\\\ftplocation\\files\\boatcompany\\boats\\

我尝试了以下操作:(使用上面的URL)。

ImageUrl='<%# String.Format(@"\\ftp\files\boatcompany\boats\{0}\thumbnails\{1}.{2}", Eval("BoatId"), Eval("Image.ImageId"), Eval("Image.Extension")) %>' />

除了Max的答案外,我还想添加第三个解决方案,该解决方案可用于私有和公共ftp服务器(以及其他任何真正的服务器)。

您需要做的是将您的应用程序用作ftp的代理。

  • 添加页面,例如 接受参数f.ex的“ getimage.aspx”。 图片的ID
  • 在页面上,当被调用时,带有标题设置(MIME类型等)的响应(保持)
  • 连接到ftp服务器,根据需要登录并流式传输请求的文件。
  • 将该流的内容转发到页面的流(响应流)并关闭。

然后,您可以执行以下操作(换行以使其更具可读性):

ImageUrl = '<%# 
    String.Format(@"/getimage.aspx?boatid={0}&imageid={1}&extension={2}", 
                  Eval("BoatId"), 
                  Eval("Image.ImageId"), 
                  Eval("Image.Extension")) %>'

对于FTP,您可以使用.net中的内置功能,也可以使用第三方扩展程序(例如Rebex-FTP) ,该扩展程序使来自ftp的流文件在公园里散步。

使用页面以这种方式检索图片,使其能够从各种来源(而不仅仅是ftp)获取图片,同时保持对用户透明。

由于安全问题,浏览器将永远不会从本地存储加载任何资源(包括图像)。 因此,永远不会从Internet网站加载\\\\server\\myfile.jpgfile:///server/myfile.jpg类的URL。 这就是为什么您的代码不起作用的原因。

您有两种选择:

1。 如果ftplocation是真实的FTP服务器,并且可以使用真实的FTP URL从外部访问它,则可以使用以下代码:

ImageUrl='<%# String.Format(@"ftp://ftp.server.com/files/boatcompany/boats/{0}/thumbnails/{1}.{2}", Eval("BoatId"), Eval("Image.ImageId"), Eval("Image.Extension")) %>

2。 您可以在Web项目内的IIS中创建一个虚拟子文件夹,将其命名为Boats ,然后将该虚拟文件夹指向\\\\ftplocation\\files\\boatcompany\\文件夹。 然后在您的代码中使用以下代码(与获得FTP之前使用的代码几乎相同):

ImageUrl='<%# String.Format(@"/Boats/{0}/thumbnails/{1}.{2}", Eval("BoatId"), Eval("Image.ImageId"), Eval("Image.Extension")) %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM