2011-02-01 60 views
0

我對Flash和as3並不熟​​悉,而且我已經完成了編寫程序的任務,該程序從提供的URL下載圖像,並將它們保存到用戶計算機上的指定位置。將圖像保存爲客戶端上的文件?

這個想法是能夠下載多個圖像(用戶選擇它們)並將它們全部下載到單個目錄(用戶首先選擇),以便他不必逐一下載它們。另外,將它們放入存檔並作爲一個文件下載不是一種選擇。

我發現的唯一解決方案是使用FileReference.save(),這對我不起作用,因爲它打開了一個保存對話框。

如果在Flash中無法做到這一點,請提供另一種方法來做到這一點,而不訴諸安裝自定義插件。

謝謝。

回答

3

您將遇到的最大問題是Flash播放器沙箱安全問題。根據設計,如果您的SWF已在網絡上,則無法將來自本地計算機的文件請求與網絡上的文件請求混合使用。這是爲了防止惡意的SWF將文件從您的計算機發送到互聯網。我花了一段時間才完全理解安全限制,但全部都是here, in the Adobe AS3 help docs

在該頁面的底部,你會看到一個安全沙箱類型的列表,如果你創建了一個網站(REMOTE),你不會實現的Flash設計,而不訴諸時髦的3rdParty瀏覽器插件:

  • Security.REMOTE
  • Security.LOCAL_WITH_FILE
  • Security.LOCAL_WITH_NETWORK
  • Security.LOCAL_TRUSTED←可以做你的需要。
  • Security.APPLICATION←也可以做你需要的。

LOCAL_*沙箱中的所有處理SWF的在您的計算機上,但他們訪問您的計算機上的兩個其他文件,然後將它們發送到網絡時,用戶需要手動「信任」的SWF。假設你正在爲更廣泛的公衆創建你的應用程序,這可能不是一個可行的選擇。

你最好的選擇是使用AIR。如APPLICATION中所述,您可以混合使用本地和網絡資源。然而,您的用戶需要在他們的計算機上擁有管理員權限,並且在將您的應用程序安裝爲AIR桌面應用程序之前,您已經足夠信任您。

祝你好運! EP。