私は画像アップロードアプリに取り組んでいます。アップロード部分が機能するようになり、UITextFieldからのコメントをPOSTに含めたいと思います。
UITextFieldの名前はcommentText
です。
myURL
viewDidLoadで定義されます。
- (IBAction)startUpload {
uploadButton.enabled = NO;
NSData *imageData = UIImageJPEGRepresentation(imageView.image, 0.7);
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:myURL]];
[request setHTTPMethod:@"POST"];
//Trying to add comment from uitextfield commentText
NSLog(@"Comment Text: %@", [commentText text]);
NSString *comment = [NSString stringWithFormat:@"comment=%@", [commentText text]];
NSString *boundary = [NSString stringWithString:@"---------------------------94729573838364809882205829479"];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
[request addValue:contentType forHTTPHeaderField:@"Content-Type"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"test.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//for comment
[body appendData:[comment dataUsingEncoding:NSUTF8StringEncoding]];
//[body appendData:[NSData dataWithBytes: [comment UTF8String] length: [comment length]]];
NSLog(@"comment: %@", comment);
[request addValue:[NSString stringWithFormat:@"%i", [body length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:body];
NSURLResponse *response;
NSError *error;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSLog(@"responseData: %@", responseData);
}
このコードの多くは、私が読んださまざまな投稿からまとめられており、正直なところ、境界については何も知りません(まだ)。クロージングバウンダリーをシフトしてみましたが、違いはありませんでした。PHPを使用して、$ _ POST、$ _ GET、および$ _REQUESTの値を確認しましたが、コメントはありません(少なくとも、$ _ REQUESTに表示されますね?)。私はそこに他の同じ質問があることを知っています(http://stackoverflow.com/questions/9509419/xcode-easiest-way-to-send-data-from-ios-textfield-for-example-to-a-remote- datab)、私は読んだことがありますが、これを理解できないようです。
ありがとう、
マーク
編集:追加しようとしているコメントは、境界で再度区切る必要があり、コンテンツタイプを宣言する必要がありますか?またはそれらの線に沿った何か?