Alamofire 不发送上传请求(根本没有建立连接)
Alamofire not sending upload-request (no connection established at all)
我想上传最近从 DocumentPicker(例如 iCloud、Dropbox 等)下载(在我的应用程序中)的文件
所以我有这个文件的 NSUrl (urlToFile
) (已验证)
我用这个代码上传:
upload(.POST, Config.uploadURL, urlToFile!)
.progress { (bytesWritten, bytesWrittenInTotal, bytesToBeWritten) -> Void in
println("Bytes: \(bytesWrittenInTotal)")
}
.responseString{(request, response, JSON, error) in
println(request)
println(response)
println(JSON)}
根本没有上传连接。接收上传的 php 文件具有日志功能,因此每次调用该文件都会被记录下来。上面显示的代码从未建立连接。
这是我收到的输出:
{ URL: http://correctURLtoThePHPScript }
nil
nil
错误信息:
The operation couldn’t be completed. Is a directory
我认为这是由于 documentPicker(controller: UIDocumentPickerViewController, didPickDocumentAtURL url: NSURL)
返回带有尾部斜杠的 fileUrl。但即使我通过下面的代码删除尾部的斜杠,我也会收到相同的错误消息!
let s = url.URLString
let strippedUrl = s.substringToIndex(advance(s.startIndex, count(s)-1))
urlToFile = NSURL(string: strippedUrl)
解决方法:
使用 urlToFile = NSURL(fileURLWithPath: strippedUrl)
!!
总结所有评论:
- 始终打印/收听从 Alamofire(或 Core Data,或其他任何东西)返回的
NSError
值。他们可以通过这些错误与您的代码进行通信的唯一方法
- 问题是文件路径以路径分隔符结尾,即
/path/to/my/file.txt/
- 删除末尾有问题的
/
:
let s: NSString = "/path/to/my/file/" as NSString
s.substringToIndex(s.length-1)
我想上传最近从 DocumentPicker(例如 iCloud、Dropbox 等)下载(在我的应用程序中)的文件
所以我有这个文件的 NSUrl (urlToFile
) (已验证)
我用这个代码上传:
upload(.POST, Config.uploadURL, urlToFile!)
.progress { (bytesWritten, bytesWrittenInTotal, bytesToBeWritten) -> Void in
println("Bytes: \(bytesWrittenInTotal)")
}
.responseString{(request, response, JSON, error) in
println(request)
println(response)
println(JSON)}
根本没有上传连接。接收上传的 php 文件具有日志功能,因此每次调用该文件都会被记录下来。上面显示的代码从未建立连接。
这是我收到的输出:
{ URL: http://correctURLtoThePHPScript }
nil
nil
错误信息:
The operation couldn’t be completed. Is a directory
我认为这是由于 documentPicker(controller: UIDocumentPickerViewController, didPickDocumentAtURL url: NSURL)
返回带有尾部斜杠的 fileUrl。但即使我通过下面的代码删除尾部的斜杠,我也会收到相同的错误消息!
let s = url.URLString
let strippedUrl = s.substringToIndex(advance(s.startIndex, count(s)-1))
urlToFile = NSURL(string: strippedUrl)
解决方法:
使用 urlToFile = NSURL(fileURLWithPath: strippedUrl)
!!
总结所有评论:
- 始终打印/收听从 Alamofire(或 Core Data,或其他任何东西)返回的
NSError
值。他们可以通过这些错误与您的代码进行通信的唯一方法 - 问题是文件路径以路径分隔符结尾,即
/path/to/my/file.txt/
- 删除末尾有问题的
/
:
let s: NSString = "/path/to/my/file/" as NSString
s.substringToIndex(s.length-1)