2012-10-24 83 views
0

從URL下載文件到服務器這是我的困境: 我希望用戶能夠通過提供圖像的URL(可以是任何圖像文件)將圖像加載到畫布。我可以這樣做,但直接從URL添加圖像可防止將畫布導出到文件。 所以我想要做的事情就是在服務器上創建一個臨時副本,並且能夠獲得它作爲javascript var的路徑.... 這是可能的嗎?我可以使用javascript php

回答

0

你總是可以嘗試在您的服務器使該URL的HTTP請求,但有幾個問題:

  1. 您需要檢查,以確保在HTTP請求不內部解決;也就是說,只有外部網站應該被允許,否則你剛剛爲你的網絡製造了一個安全漏洞,如果一個人知道正確的道路,允許那些以前只能在內部看到的事情現在可以從外部訪問。
  2. 無法保證您拉取圖片的服務器會強制您的請求。他們可能會檢查圖像是從「授權」頁面(在此處使用術語鬆散)引用的,或者他們可能會拒絕某些用戶代理字符串,或聲明某些cookie已設置,或者上述某些組合。
  3. 您可能需要執行某種檢查以確保用戶有權請求您的服務器發出url請求,並且返回的內容確實是某種圖像類型,否則您只是做了半功能代理可能會被濫用(特別是如果您擔心跨網站腳本攻擊到您的網站);理想情況下,您也不希望讓用戶過度使用您的服務器而無法達到真正目的。

一旦你過去的問題#1和#3,嚴格來說,沒有理由的文件實際上必須複製到您的服務器,但如果你沒有將它保存到服務器的使用可能會更穩定。但如果你要保存它,那麼還有其他問題。

  1. 如何限制當前用戶對文件的訪問?
  2. 你的清理策略是什麼?
  3. 請求是否需要利用某種客戶端緩存來獲得合理的性能?文件到底會如何提供?什麼文件將被命名?
  4. 如果這些文件受版權保護,或者更糟,非法

當然,您不必將所有這些問題都考慮在內以實現基本的解決方案,但我認爲至少考慮一次是明智的。

-1

是的。你可以通過AJAX來做到這一點。