次のコードを使用して、写真をWebサービスに送信しています。
-(void)uploadPhoto:(UIImage*)image :(NSString*)fileName
{
NSData *img = UIImageJPEGRepresentation(image, 0.9f);
NSString *urlString = @"http://serverURL.com";
NSMutableURLRequest *request= [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSMutableData *postbody = [NSMutableData data];
[postbody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postbody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@.jpg\"\r\n",fileName] dataUsingEncoding:NSUTF8StringEncoding]];
[postbody appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postbody appendData:[NSData dataWithData:img]];
[postbody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postbody];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"%@", returnString);
}
これは正常に機能しており、PHPのサーバーから写真を取得できます。
私の質問は、form-dataを使用してサーバーに追加のデータを送信することは可能ですか?ユーザー名やその他のアプリケーション関連データなど、写真に関する詳細を送信する必要があります。
リクエストに追加のデータを追加するにはどうすればよいのでしょうか。通常のPOSTデータを追加しようとしましたが、機能しません。データ型が原因だと思います。
これがどのように機能するか、そしてサーバーに送信するリクエストにさらにデータを追加する方法があるかどうか混乱しています。
これに関するどんな助けも素晴らしいでしょう。
ありがとう!