Php Objective-C如何使用AFNetwork上传字符串
我使用AFNetwork上传照片和字符串我将uitextview转换为字符串到我的服务器并保存在数据库中,但我不知道如何使用AFNetwork上传字符串,但我使用它上传我的照片它工作这是我与viewcontroller一起使用的php代码Php Objective-C如何使用AFNetwork上传字符串,php,ios,objective-c,iphone,afnetworking,Php,Ios,Objective C,Iphone,Afnetworking,我使用AFNetwork上传照片和字符串我将uitextview转换为字符串到我的服务器并保存在数据库中,但我不知道如何使用AFNetwork上传字符串,但我使用它上传我的照片它工作这是我与viewcontroller一起使用的php代码 <?php include(“connect.php"); $uploaddir = "post_comment/original/"; //Uploading to same directory as PHP file $file = bas
<?php
include(“connect.php");
$uploaddir = "post_comment/original/"; //Uploading to same directory as PHP file
$file = basename($_FILES['userfile']['name']);
$uploadFile = $file;
$randomNumber = rand(0, 99999);
$newName = $uploaddir . $randomNumber . $uploadFile;
$comment_text = nl2br($_POST['comment']);
$post_no = $_POST['post_no'];
$mem_slug = $_POST['id'];
$timest = date("Y-m-d H:i:s");
echo "it is: ".$file;
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "Temp file uploaded. \r\n";
} else {
echo "Temp file not uploaded. \r\n";
}
if ($_FILES['userfile']['size']> 3000000) {
exit("Your file is too large.");
}
if(copy($_FILES['userfile']['tmp_name'],$newName)){
$sql3 = $conn->prepare("INSERT INTO `post_comment`(`comment_id`,`post_id`,`member_id`,`comment`,`image`,`status`,`timestp`) VALUES('',:postid,:member,:comment,:image,'1',:timestp)");
$sql3 ->bindValue(':postid',$post_no);
$sql3 ->bindValue(':member',$mem_slug);
$sql3 ->bindValue(':comment',$comment_text);
$sql3 ->bindValue(':image',$newName);
$sql3 ->bindValue(':timestp',$timest);
$sql3 ->execute();
}
echo "upload finished";
?>
Viewcontroller.m
NSString *comment = _commentText.text;
NSDictionary *data= @{@"post_id":urlpost,@"member_id":member_id,@"comment":self.commentText.text};
[manager POST:@"http://www.mysiteurl.com/member/comment_upload2.php"
parameters:data constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
{
[formData appendPartWithFileData:UIImageJPEGRepresentation(self.image, 100) name:@"userfile" fileName:@"img.jpg" mimeType:@"image/jpg"];
}
success:^(AFHTTPRequestOperation *operation, id responseObject)
{
NSString* str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"response is : %@",str);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
NSLog(@"Error: %@ *****", error);
}];
}
使用AFNetwork上载图像和字符串 试试这个代码
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://www.mysiteurl.com"]];
NSData *imageData = UIImageJPEGRepresentation(yourimage.image, 0.5);
NSDictionary *parameters= @{@"post_id":urlpost,@"member_id":member_id,@"comment":self.commentText.text};
AFHTTPRequestOperation *op = [manager POST:@"/member/comment_upload2.php" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
//do not put image inside parameters dictionary as I did, but append it!
[formData appendPartWithFileData:imageData name:@"file" fileName:[NSString stringWithFormat:@"photo_%f.jpg",[NSDate timeIntervalSinceReferenceDate]] mimeType:@"image/jpeg"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject);
[[NSNotificationCenter defaultCenter] postNotificationName:@"PostAdded" object:nil];
[self.navigationController popViewControllerAnimated:YES];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@ ***** %@", operation.responseString, error);
}];
[op start];
您可以使用下面的代码上载注释字符串
NSString *comment = _commentText.text;
NSDictionary *data= @{@"post_id":urlpost,@"member_id":member_id,@"comment":self.commentText.text};
NSString *urlString=@"http://www.mysiteurl.com/member/comment_upload2.php”;
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"application/json",@"text/html", nil];
manager.requestSerializer=[AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
//manager.responseSerializer=[AFJSONResponseSerializer serializer];
NSString *stringCleanPath = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[manager POST:stringCleanPath parameters:maindict success:^(AFHTTPRequestOperation *operation, id responseObject)
{
NSDictionary *jsondict =responseObject;
NSLog(@"jsondict>>>%@",jsondict);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error is %@",error);
[delegate failedResponseWithAnyType:[error localizedDescription] withServiceType:serviceTypeString];
}];
//或者您可以尝试使用下面的代码上载字符串和照片
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"application/json",@"text/html", nil];
manager.requestSerializer=[AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
//manager.responseSerializer=[AFJSONResponseSerializer serializer];
NSString *stringCleanPath = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *comment = _commentText.text;
NSDictionary *data= @{@"post_id":urlpost,@"member_id":member_id,@"comment":self.commentText.text};
[manager POST:stringCleanPath
parameters:data constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
{
[formData appendPartWithFileData:UIImageJPEGRepresentation(self.image, 100) name:@"userfile" fileName:@"img.jpg" mimeType:@"image/jpg"];
}
success:^(AFHTTPRequestOperation *operation, id responseObject)
{
NSString* str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"response is : %@",str);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
NSLog(@"Error: %@ *****", error);
}];
}
它不会出现在可接受的ContentTypes为NSSet时。您仅通过NSSet。。。!检查一下
希望它能帮助你 您应该修复quotesI忘记它的字符串,因为我要上传的是NSString*comment=\u commentText.text;谢谢,但是在manager.responseSerializer.acceptableContentTypes=[NSSet setWithObject:@application/json,@text/html,nil];have error方法调用的参数太多,应为1,have 3
self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];