可以作为FTP服务器托管iOS应用程序文档目录的库
我有一个iOS应用程序,它可以创建一些文件,并允许用户检索这些文件。我已经实现了iTunes文件共享和AirDrop。但有时,将所有文件作为FTP服务器托管会更容易,因此将多个文件复制到计算机中会更容易。但是,我在iOS中还没有找到任何可以作为FTP服务器承载文件的库。我确实在GitHub上找到了。但它说它只用于调试,当我实际尝试它时,它也不太稳定 什么是一个好的FTP服务器API的iOS,我可以用来托管一些文件,他们都在我的应用程序的文档目录?如果它也支持写入目录就更好了。我使用urlComponents访问我的ftp服务器。以下是获取文件并将其保存在阵列中的示例:可以作为FTP服务器托管iOS应用程序文档目录的库,ios,ftp,Ios,Ftp,我有一个iOS应用程序,它可以创建一些文件,并允许用户检索这些文件。我已经实现了iTunes文件共享和AirDrop。但有时,将所有文件作为FTP服务器托管会更容易,因此将多个文件复制到计算机中会更容易。但是,我在iOS中还没有找到任何可以作为FTP服务器承载文件的库。我确实在GitHub上找到了。但它说它只用于调试,当我实际尝试它时,它也不太稳定 什么是一个好的FTP服务器API的iOS,我可以用来托管一些文件,他们都在我的应用程序的文档目录?如果它也支持写入目录就更好了。我使用urlComp
func getFiles(completionHandler: @escaping (Int) -> ()) {
var urlComponents = URLComponents(string: nameOfFTPServer) // i.e. ftp://me.myserver.com
urlComponents?.user = "username"
urlComponents?.password = "password"
let url = urlComponents?.url
let request = URLRequest(url: url!)
var myError = 0
if url != nil {
let task = URLSession.shared.dataTask(with: request, completionHandler: { (data, response, error) -> Void in
//no internet connection
if data == nil || (data?.isEmpty)! {
myError = NSURLErrorResourceUnavailable
completionHandler(myError)
}
// If error is nil, everything's all good so get the data
else if error == nil {
if let data = data, let result = String(data: data, encoding: String.Encoding.ascii) {
let array = result.components(separatedBy: "\n")
completionHandler(myError)
}
}
else {
// everything is not all good, handle the error elsewhere
print(myError!)
myError = NSURLErrorTimedOut
completionHandler(myError)
}
})
task.resume()
}
和另一个类中的完成处理程序:
getFTPFiles(completionHandler: { done in
DispatchQueue.main.async {
switch done {
case 0: // data loaded
case NSURLErrorResourceUnavailable, NSURLErrorTimedOut: // something went wrong
default:
self.tableView.reloadData()
}
}
}
这将为我获取一个文件名数组,稍后将其解析出来显示在tableView中,然后打开一个文件,我正在将PDF打开到webView中,如下所示:
func loadPDF(filename: String, folder: String){
var urlComponents = URLComponents(string: nameOfServer)
urlComponents?.user = "username"
urlComponents?.password = "password"
urlComponents?.path = "/" + folder + "/" + filename
let url = urlComponents?.url
if(url != nil){
let requestObj = URLRequest(url: url!)
webView.loadRequest(requestObj)
}
else{
webView.loadHTMLString("<html><body><p>Check your internet connection</p></body></html>", baseURL: nil)
}
}
我正在想办法用FTP托管文件。。。我真的不需要使用FTP检索文件。或者,如果没有库,您可以通过URLSession.uploadTaskWithRequest查找文档来实现这一点,以获取更多信息