使用Swift从iOS应用上传文件到Dropbox

我已完成本教程( https://blogs.dropbox.com/developers/2014/09/swift-apps-with-dropbox/ )并成功将我的iOS应用程序与Dropbox相关联。 但是,我想将我的应用程序中的文件上传到Dropbox。 所有教程中只有Objective C中的代码,包括Dropbox中的主要代码( https://www.dropbox.com/developers/core/start/ios )。 有谁知道如何用Swift做到这一点?

谢谢!

有用。

let textContent = "Hello Swift Upload" let textData:NSData? = textContent.dataUsingEncoding(NSUTF8StringEncoding) var client:DropboxClient? = Dropbox.authorizedClient if let cli = client { cli.files.upload(path: "/Swift-Upload.txt", mode: Files.WriteMode.Add, autorename: false, clientModified: nil, mute: false, body: textData!) } 

iOS 10.12.3 swift 3.0 SwiftyDropbox 4.1.1一年稍微完整的答案。

  func files_saver(sourcePath: String) { let textContent = "Blah Blah Blah" let textData:NSData? = textContent.data(using: String.Encoding.utf8) as NSData? let client = DropboxClientsManager.authorizedClient! client.files.upload(path: sourcePath, input: textData as! Data).response { response, error in if let metadata = response { print("Uploaded file name: \(metadata.name)") print("Uploaded file revision: \(metadata.rev)") // Get file (or folder) metadata } if let error = error { switch error as! CallError { case .routeError(let boxed, let requestId): switch boxed.unboxed { case .path(let failedPath): //print("Failed update 2 path: \(failedPath)") NotificationCenter.default.post(name: Notification.Name("dbFileCreationError"), object: nil, userInfo: nil) break default: //print("Unknown \(error)") break } case .internalServerError(let code, let message, let requestId): //print("InternalServerError[\(requestId)]: \(code): \(message)") NotificationCenter.default.post(name: Notification.Name("dbInternalServerError"), object: nil, userInfo: nil) break case .badInputError(let message, let requestId): //print("BadInputError[\(requestId)]: \(message)") NotificationCenter.default.post(name: Notification.Name("dbBadInputError"), object: nil, userInfo: nil) break case .authError(let authError, let requestId): //print("AuthError[\(requestId)]: \(authError)") NotificationCenter.default.post(name: Notification.Name("dbAuthError"), object: nil, userInfo: nil) break case .rateLimitError(let rateLimitError, let requestId): //print("RateLimitError[\(requestId)]: \(rateLimitError)") NotificationCenter.default.post(name: Notification.Name("dbRateLimitError"), object: nil, userInfo: nil) break case .httpError(let code, let message, let requestId): //print("HTTPError[\(requestId)]: \(code): \(message)") NotificationCenter.default.post(name: Notification.Name("dbHTTPError"), object: nil, userInfo: nil) break default: break } } } } 

我能够使用这个(gist)代码(Swift 2.2)上传一个大(r)文件(> 800MB) – >

https://gist.github.com/cnharris10/3d744ca13abd13d4d5bd3a363be16dff

请参阅下面的示例屏幕截图,其中另一个150mb文件以1mb的块为单位上传

在此处输入图像描述