2014-10-20 14 views
2

The Dropbox Chooser and Saver tools似乎爲這兩個任務非常酷:Dropbox Saver能否接受來自createObjectURL()的數據?

  • 讓用戶選擇從他們的Dropbox文件,頁面可以下載它(即,Dropbox的到客戶端)。
  • 讓用戶在他們的Dropbox中選擇一個目標位置,以便將一個文件保存在服務器上的某個URL(即服務器到Dropbox)上。

這是不對稱的。 This StackOverflow question詢問是否可以直接從客戶端向Dropbox Saver發送文件。 (如果您正在編寫客戶端應用程序,希望Dropbox代替服務器,這特別方便。)

一個答案中的評論指出Core API或Sync API可以這樣做。但如果不需要的話,引入那些更復雜的API將會是一件恥辱;選配器和保護程序非常易於使用。此外,我並不清楚Saver提供的UI在這種情況下是否仍然可用。

我的問題:什麼是保存在客戶端文件的最簡單的方法(例如,從在createObjectURL URL數據)到用戶的Dropbox的,如果可能的話還是使用節電器UI? (「最簡單」是指短暫的,易於閱讀和維護的代碼。)具體的JavaScript代碼將是理想的。

+2

Dropbox Saver目前不支持從本地來源(例如數據或blob URI)進行保存,但我一定會將其作爲反饋傳遞給您。 – Greg 2014-10-20 20:04:54

+1

@Greg這會讓他們成爲將存儲添加到Web應用程序的最簡單方式!感謝您考慮它。 – Nathan 2014-10-21 00:38:12

+1

僅供參考 - 如果具有此功能,我會將Dropbox Saver添加到至少一個(可能更多!)我的網站。 – 2015-01-05 23:48:00

回答

1

正如James Foster上面的評論,Dropbox現在接受數據URI。因此,如果有數據以數據URI的形式存在,則可以將Dropbox.save(dataURI,filename,options)稱爲here

但有一個小問題:要創建一個數據URI,通常的方式(使用FileReader)需要異步調用readAsDataURL。但Dropbox.save()只能響應用戶交互(如點擊)而被調用。因此,在點擊處理程序中,如果您必須首先異步創建數據URI,那麼到達回調時,不能再調用Dropbox.save()函數。

在我的情況下,有可能創建沒有FileReader API的數據URI,因爲我只存儲HTML數據。可以簡單地編寫"data:text/html,"+encodeURIComponent(myHTMLData)來創建數據URI,如記錄here。對於那些解決方案無效的非文本數據,你不得不去嘗試一些更復雜的東西,比如here

相關問題