我有一個使用NSURLSessionUploadTask
的iOS應用程序中的視頻上傳系統。視頻文件被保存到一個NSURL
,所以我用我上傳方法如下代碼:使用NSURLSessionUploadTask將文件上傳到PHP服務器
request.HTTPMethod = @"POST";
[request addValue:@"file" forHTTPHeaderField:@"fileName"];
// Create upload task
NSURLSessionUploadTask *task = [session uploadTaskWithRequest:request fromFile:filePath completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if(!error) {
// handle success
} else {
// handle error
}
}];
// Run the task
[task resume];
我有(使用Laravel)下運行Nginx的處理這種上傳一個PHP服務器。我用郵遞員測試了它,並且它接受上傳正常(期待名爲「文件」的文件)。
當我運行上面的objc代碼時,服務器告訴我沒有文件上傳($_FILES
數組爲空)。
我試過了,沒有設置「fileName」標題,我試過將「Content-Type」設置爲「multipart/form-data」,但沒有一個可以工作。
我怎樣才能得到NSURLSessionUploadTask
正確上傳這些文件(從NSURL
)到服務器?
此信息似乎細節類似的問題:NSURLSessionUploadTask not passing file to php script
你的檔案裏有什麼?請記住,PHP將期待身體看起來像[基於表單的文件上傳](http://stackoverflow.com/questions/8659808/how-does-http-file-upload-work),並uploadTaskWithRequest doesn我不會做任何「聰明」的事 - 我只是把你的文件作爲身體數據發送出去。 – 2014-10-01 08:20:49
這是一個.mov文件。 – GTF 2014-10-01 10:21:07
只需使用AFNetworking並通過手動編寫auth頭文件(base64編碼等)來解決身份驗證問題就解決了這一問題。 – GTF 2014-10-02 11:08:08