使用两个参数iOS将文件发送到服务器iOS
我想将文件发送到服务器路径,并以参数“filepath”作为一个参数,并将文件数据作为另一个参数发送。 我该怎么做。在下面我将附加带有数据的文件路径。 但我想这是错的,请帮助
NSURL *nsurl =[NSURL URLWithString:_urlString]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:nsurl cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; [request setURL:nsurl]; [request setHTTPMethod:@"POST"]; NSString *boundary = @"---------------------------14737809831466499882746641449"; NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; NSMutableData *body = [NSMutableData data]; NSData *data = UIImageJPEGRepresentation([UIImage imageNamed:@"Model.png"], 0.0); NSString *string = [NSString stringWithFormat:@"filepath=%@",_filePath]; NSData *pathData = [string dataUsingEncoding:NSUTF8StringEncoding]; [body appendData:pathData]; //Image [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"image\"; filename=\"%@\"\r\n",@"newFile.png"] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:data]; [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; // setting the body of the post to the reqeust [request setHTTPBody:body]; NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:returnData options:kNilOptions error:nil]; NSLog(@"%@",dict);
谢谢
你不能只做[body appendData:pathData];
在开始时。 您需要使用适当的边界和内容信息添加它。 所以你应该有很多行,比如:
- 添加边界
- 添加内容信息
- 添加内容数据
- 添加边界
对于要添加的每个附加数据,从2开始重复。
检查规范以获取有关每种数据类型需要添加的相应内容类型和处置信息的信息(最佳示例位于底部)。