簡體   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