我在 iOS 应用程序中有一个视频上传系统,使用NSURLSessionUploadTask
. 视频文件保存到一个NSURL
所以我在我的上传方法中使用以下代码:
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];
我有一个在 nginx 下运行的 PHP 服务器(使用 Laravel)来处理这个上传。我已经用 Postman 对其进行了测试,它可以很好地接受上传(期望一个名为“file”的文件)。
当我运行上面的 objc 代码时,服务器告诉我没有上传文件($_FILES
数组为空)。
我尝试过设置和不设置“fileName”标头,并且尝试将“Content-Type”设置为“multipart/form-data”,但这些都不起作用。
如何才能NSURLSessionUploadTask
将这些文件(从NSURL
)正确上传到服务器?
这篇文章似乎详细介绍了一个类似的问题:NSURLSessionUploadTask not pass file to php script