【发布时间】:2015-06-27 07:46:48
【问题描述】:
所以我将文件从 swift 上传到 PHP 服务器,POST 请求按预期到达,带有标题,但我无法从 $_FILES 中获取任何内容。它只是一个空数组。
我显然在 Swift 方面做错了,这是我的代码:
func testUpload(){
let bundle = NSBundle.mainBundle()
let path = bundle.pathForResource("someTestFile", ofType: "zip")!
var data: NSData = NSData(contentsOfFile: path)!
var request = NSMutableURLRequest(URL: NSURL(string: "http://testsite.com/upload")!)
request.HTTPMethod = "POST"
let boundary = "----------ds2Gry67efddagdfsfhsHF"
let contentType = "multipart/form-data; boundary=\(boundary)"
request.setValue(contentType, forHTTPHeaderField:"Content-Type")
request.setValue("Keep-Alive", forHTTPHeaderField: "Connection")
self.uploadFiles(request, data: data)
}
func uploadFiles(request: NSURLRequest, data: NSData) {
var configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
var session = NSURLSession(configuration: configuration, delegate: self, delegateQueue: NSOperationQueue.mainQueue())
var task = session.uploadTaskWithRequest(request, fromData: data)
task.resume()
}
我很确定我错过了什么,我只是不知道它是什么......
【问题讨论】:
-
可能与 contentDisposition 有关?
-
您是否考虑过改用 Alamofire?
-
您要发送什么类型的文件?您是否尝试使用该文件发送其他任何内容?您是否尝试过 $_FILE 和 $_POST 数组的 var_dump?
-
@jkaufman 这只是一个 zip 文件,除了一些标头之外没有发送任何其他内容,因此 $_POST 也是空的
标签: php swift file-upload