2009-11-28 86 views

回答

8

一般情況下,從網絡服務器的SWF不能從客戶端計算機讀取文件。但它可以將用戶選擇的文件從客戶機上傳到服務器。特定於操作系統的對話框提示用戶選擇要上傳到服務器的文件。因此,Flash無法讀取任何需要的文件,只能讀取用戶明確允許的文件。

在Flash player 10之前,SWF沒有直接訪問正在上傳文件的內容 - 它所做的只是用作選擇文件並將其發送到服務器的界面。獲取其內容的唯一方法是使用URLLoader將其從服務器發送回SWF。

然而從FP10開始,FileReference類有load()方法,允許你加載用戶選擇文件直接向SWF,而不是將其通過服務器。

類似的規則適用於下載 - 文件可以保存到用戶的機器只有他們的許可,並在用戶指定的位置和名稱。在FP10之前,您只能將文件從服務器下載到客戶端 - 如果必須將使用SWF創建的某個映像保存到客戶端計算機,則必須將其發送到服務器,然後提示用戶下載。從FP10開始,您可以直接從SWF寫入數據(當然,需要獲得用戶的許可)。


除了這些,一個SWF可以在客戶端機器,其是類似於瀏覽器cookie存儲SharedObjects。存儲共享對象不涉及用戶的任何對話框或權限。以下是引用來自上面鏈接的livedocs頁面。

本地共享對象有一些限制,在設計應用程序時需要考慮一些重要的限制。有時SWF文件可能不允許編寫本地共享對象,有時存儲在本地共享對象中的數據可能在您不知情的情況下被刪除。 Flash Player用戶可以管理可用於單個域或所有域的磁盤空間。當用戶減少可用磁盤空間量時,可能會刪除一些本地共享對象。 Flash Player用戶還擁有隱私控制功能,可以防止第三方域(當前瀏覽器地址欄中域以外的域)讀取或寫入本地共享對象。

1

Flash播放器具有一個名爲sandbox的安全機制,它保護用戶本地文件,因爲用戶不希望Flash腳本訪問您的私人文件。

有2種方式,你可以訪問這些文件: 1)用戶授權的Flash Player訪問某個文件夾(右鍵點擊Flash播放器 - >設置 - >高級 - >安全) 2)使用Adobe Flash Player和可執行的橋接來實現對文件系統的訪問 - >這不是一個Web應用程序,而是用戶安裝的程序。

Flash有一個文件上傳,可以幫助您讓用戶加載文件manualy你的程序是否有幫助

+1

我知道你的答案是很久以前的事。但是,該術語不是「sanbox」,而是「沙盒」,請參閱https://en.wikipedia.org/wiki/Sandbox_(computer_security)。來自「sanbox」的問題中的鏈接看起來已經死亡,並且轉到通用頁面。由於這個問題出現在我剛剛完成的谷歌搜索的第一頁,並且您的答案仍然添加了一些有用的信息,因此可以很好地改進您的答案,使用「沙箱」並鏈接到類似wkipedia的內容。 – gbulmer 2016-04-11 17:12:10

+0

修正了,謝謝! – Eran 2016-04-14 18:25:09

相關問題