我有一个这样的上传表单:
<form action="http://localhost/upload.php" method="post" enctype="multipart/form-data">
<input type="file" id="upload" name="upload" />
</form>
和 php 代码继续上传表单:
isset($_FILES["upload"]) or die("Error");
// Path prepare stuff
if (move_uploaded_file($_FILES["upload"]["tmp_name"], $outputFile)) {
// Other processing stuffs
}
在 xcode 中,我像这样构造请求:
NSMutableURLRequest* request = [[AFHTTPRequestSerializer serializer]
multipartFormRequestWithMethod:@"POST"
URLString:@"http://localhost/upload.php"
parameters:nil
constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
[formData appendPartWithFormData:data name:@"somefilename.ext"];
} error:nil];
但似乎我做错了,对吧?
更新
我是 AFNetworking 的新手,我想了解它如何像上面那样构建 multiplart/form-data 帖子。看起来代码缺少输入的名称“上传”,因此将无法通过 php 上传脚本的第一行。我从 AFNetworking 的 GitHub 上阅读了该文档,但他们对使用 NSData 构建表单数据只字未提,这里就是这种情况。