2017-03-10 45 views
-1

這裏是場景:我的應用程序具有一個帳戶系統,其中用戶可以登錄/註銷應用程序,從而使其他用戶也可以使用同一個iOS設備登錄。成功登錄後,它會從網站下載文件(如pdf,ppt等),並將它們放在應用程序的本地目錄中(這些文件在以每個用戶的user_id命名的文件夾中分開)。因此,如果用戶將使用該應用程序上傳文件,我應該從哪個目錄獲取該文件?從iOS設備上傳文件/照片的最佳方式是什麼?

獲取從文件/圖片:

  • A)本地文件的應用程序目錄(缺點:能力來查看其他用戶的目錄)
  • B)的iCloud文件(缺點:我不知道這是iOS用戶如何一般使用存儲,或者怎麼樣未放置在iCloud中的文件嗎?)
  • C)本地文件app目錄,並限制不符合user_id匹配的文件夾(這是可能的)
  • D)其他
+0

「如果用戶將使用應用程序上傳文件「:你的意思是你把它上傳到你的服務器/網站並保存文件的副本在本地? –

+0

我只想上傳來自iOS設備的文件,這意味着它可能位於照片,iCloud或其他地方,人們可以將其文件保存到 – iOSNewbie

+0

我不確定iphone用戶如何存儲他們下載的文檔。 iOS沒有使用文件管理器(就像在Android中),但我知道iOS中的每個應用程序都是沙盒 – iOSNewbie

回答

1

這就是如何在iOS上正常上傳。

你會複製你要上傳到應用程序的臨時目錄,然後創建一個使用背景會話配置的上傳任務,並通過文件路徑(臨時文件夾路徑)上傳任務的文件。

爲什麼要傳遞文件路徑?

如果您正在使用後臺會話與上傳任務,當前設計的後臺會話限制您提供任務的文件路徑,這意味着您不能流或傳遞二進制文件上傳任務(通過二進制我的意思是你無法保存任何變量文件數據)

我爲什麼要使用背景會話?

如果你想即使用戶將應用背景,甚至殺死應用程序應用程序繼續上傳(上傳一次任務開始),然後背景會話是你唯一的機會:)

我爲什麼要複製文件只有臨時目錄?

只要您退出應用程序文件,暫時保留在臨時目錄中的文件將暫時保留在目錄中,並且臨時目錄中的文件不會被iCloud備份:)作爲文件目錄或其他目錄中的文件將是由iCloud備份。

摘要:

  1. 一旦用戶選擇了文件,將它複製(如果本地可用喜歡的照片庫)或下載(如果有文件保存在雲)你的應用程序的temp目錄。

  2. 創建背景會話的上傳任務,並通過文件路徑的任務:)

  3. 獲取的茶/咖啡,並開始調試解決問題:)

+0

嗨,謝謝!但是***我應該在哪裏得到這個文件?從本地目錄或iCloud文檔? – iOSNewbie

+0

例如,我從另一個網站(使用應用程序網頁瀏覽器)下載了pdf,將它存儲到我的iOS設備,那麼我的應用程序如何檢索該文件? – iOSNewbie

+0

如果用戶在照片庫中選擇圖片,並且您將圖片從照片庫複製到應用沙箱的臨時目錄。如果您的應用程序按照上面註釋中指定的方式下載了pdf文件,那麼您知道在哪裏保存了該文件,就像在應用程序的doc目錄中一樣,現在將該文件複製並通過代碼將其存儲在應用程序的臨時文件夾中 –

相關問題