Alamofire不发送上传请求(根本没有建立连接)

时间:2015-06-03 15:15:59

标签: ios swift upload alamofire

我想上传最近从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}

     

     

错误消息:

  

无法完成操作。是目录

我认为这是由于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) !!

1 个答案:

答案 0 :(得分:0)

总结所有评论:

  • 始终打印/收听Alamofire(或核心数据或其他任何内容)返回的NSError值。他们可以通过这些错误与代码进行通信的唯一方法是
  • 问题是文件路径以路径分隔符结束,即/path/to/my/file.txt/
  • 删除最后的违规/
let s: NSString = "/path/to/my/file/" as NSString
s.substringToIndex(s.length-1)