Ios 如何在服务器上发布多个图像?

Ios 如何在服务器上发布多个图像?,ios,objective-c,image-uploading,Ios,Objective C,Image Uploading,我试图将多个映像发布到服务器,但只有一个映像将发送到服务器。我正在尝试保存多个图像。我的代码在下面,请告诉我哪里错了。我见过这个发布多张图片的例子 谢谢 NSData *imageData1 = UIImageJPEGRepresentation(photo1, 0.8); NSData *imageData2 = UIImageJPEGRepresentation(photo2, 0.8); NSData *imageData3 = UIImageJPEGRepresenta

我试图将多个映像发布到服务器,但只有一个映像将发送到服务器。我正在尝试保存多个图像。我的代码在下面,请告诉我哪里错了。我见过这个发布多张图片的例子

谢谢

NSData *imageData1 = UIImageJPEGRepresentation(photo1, 0.8);
    NSData *imageData2 = UIImageJPEGRepresentation(photo2, 0.8);
    NSData *imageData3 = UIImageJPEGRepresentation(photo3, 0.8);
    NSData *imageData4 = UIImageJPEGRepresentation(image1, 0.8);
    NSData *imageData5 = UIImageJPEGRepresentation(image2, 0.8);

    NSString *returnString;
    NSDictionary *aParametersDic= @{@"input_100":userIDStr,@"input_1":regstrationNumberStr,@"input_88":regsDateStr,@"input_2":nameofHealthSeekerString,@"input_83":ageString1,@"input_84":weightStr,@"input_85":heightStr,@"input_3":motherNameStr,@"input_4":addressStr,@"input_5":phonenumberStr,@"input_95":alternativeNumberStr,@"input_6":emailStr,@"input_7":whatsAppStr,@"input_96":idProofStr1,@"input_8":professionStr1,@"input_9":maritialStatusStr,@"input_11":presentHistoryStr,@"input_12":pastHistoryStr,@"input_13":familyHistoryStr,@"input_15":sleepStr,@"input_16":freshStatusStr,@"input_17":sleepPillsStr,@"input_20":DietStr,@"input_21":spiceStr,@"input_23":apetiteStr,@"input_25":foodChewingHabbit,@"input_27":breakfastItemStr,@"input_29":lunchItemStr,@"input_31":eveningItemStr,@"input_33":dinnerItemStr,@"input_94":mentalStatus,@"input_36":relationStr,@"input_38":constipationStr,@"input_39":urinaryStr,@"input_41":habitStr,@"input_45":tasteOfMouthStr,@"input_47":sexualStr,@"input_49":fatiqueStr,@"input_51":regularExerciseStr,@"input_53":workingHoursStr,@"input_55":favDishStr,@"input_57":otherDetailsStr,@"input_59":femalStatsStr,@"input_60":progressReportStr,@"input_77":referredByStr,@"input_75_1":hearAboutStr,@"input_78":willingStr,@"input_87":_mentorNameTextField.text,@"input_90":_phonenumberTextField.text,@"input_91":_addressTextField.text};
    // It's contains other parameters.
    NSDictionary *aImageDic = @{@"input_93":imageData1,@"input_98":imageData2,@"input_92":imageData3,@"input_82":imageData4,@"input_97":imageData5 }; // It's contains multiple image data as value and a image name as key
    NSString *urlString = [NSString stringWithFormat:@"http://nse/apis/custom/?api=1&page=user_patient_form"]; // an url where the request to be posted
    NSURL *url = [NSURL URLWithString:urlString];
    NSMutableURLRequest *request= [[NSMutableURLRequest alloc] initWithURL:url] ;

    [request setURL:[NSURL URLWithString:urlString]];
    [request setHTTPMethod:@"POST"];
    NSString *boundary = @"---------------------------14737809831e45466499882746641449";
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
    [request addValue:contentType forHTTPHeaderField: @"Content-Type"];

    NSMutableData *postbody = [NSMutableData data];
    NSString *postData = [self getHTTPBodyParamsFromDictionary:aParametersDic boundary:boundary];
    [postbody appendData:[postData dataUsingEncoding:NSUTF8StringEncoding]];

    [aImageDic enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
        if(obj != nil)
        {
            [postbody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
            [postbody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"PostedImage\"; filetype=\"image/png\"; filename=\"%@\"\r\n", key] dataUsingEncoding:NSUTF8StringEncoding]];
            [postbody appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
            [postbody appendData:[NSData dataWithData:obj]];
        }
    }];

    [postbody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [request setHTTPBody:postbody];

    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
    NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:returnData options:kNilOptions error:nil];
    dispatch_async(dispatch_get_main_queue(), ^{
        if([[jsonDict objectForKey:@"status"]boolValue])
        {
            NSLog(@"data saved successfully");
        }
        else
        {
            NSLog(@"Error in saving the data");
        }
    });
当PHP响应为
返回字符串的打印说明:

Array
(
    [PostedImage] => Array
        (
            [name] => input_82
            [type] => image/jpeg
            [tmp_name] => /tmp/phpIfld44
            [error] => 0
            [size] => 225219
        )
)

您可以使用此代码。它已经过测试,我正在使用这种方法上传多个图像以及其他参数

    if([arrImage count])
{
    for (int y = 0; y < [arrImage count]; y++)
    {
        //-- Convert string into URL
        NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:[NSURL  URLWithString:UPLOADDATA_URL]];

        [request setHTTPMethod:@"POST"];
        NSString *boundary = @"14737809831466499882746641449";
        NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
        [request addValue:contentType forHTTPHeaderField: @"Content-Type"];

        //-- Append data into posr url using following method
        NSMutableData *body = [NSMutableData data];


        //Project ID
        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",@"project_id"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"%@",projectId] dataUsingEncoding:NSUTF8StringEncoding]];

        //Date
        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",@"date"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"%@",dateString] dataUsingEncoding:NSUTF8StringEncoding]];

        //User ID
        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",@"user_id"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"%@",userID] dataUsingEncoding:NSUTF8StringEncoding]];

        //Comment
        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",@"comment"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"%@",projectNoteTextView.text] dataUsingEncoding:NSUTF8StringEncoding]];

        //Task ID
        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",@"task_assign_id"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"%@",task_Id] dataUsingEncoding:NSUTF8StringEncoding]];

        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

        image_name =[NSString stringWithFormat:@"%@%d",@"image",y];
        NSLog(@"IMAGE NAME:%@", image_name);

        UIImage*  imageFile = [arrImage objectAtIndex:y];

        CGSize newSize = CGSizeMake(500.0f, 500.0f);
        UIGraphicsBeginImageContext(newSize);
        [imageFile drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
        UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

        //  NSData *dataImg = [NSData dataWithData:UIImagePNGRepresentation(newImage)]; //compressed Imge
        //  NSData *dataImg = [NSData dataWithData:UIImagePNGRepresentation([arrImage objectAtIndex:y])];

        NSLog(@"Images, send to server:%@", dataImg);
        NSLog(@"added %i", y+1);

        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"site_image\"; filename=\"%@\"\r\n",image_name] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[NSData dataWithData:dataImg]];

        [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

        //-- Sending data into server through URL
        [request setHTTPBody:body];

        //-- Getting response form server
        NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

        //-- JSON Parsing with response data
        result = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:nil];
        NSLog(@"Result = %@",result);
    }

    [self showAlertMessage:[result objectForKey:@"message"]];
}
if([arrImage count])
{
对于(int y=0;y<[arrImage count];y++)
{
//--将字符串转换为URL
NSMutableURLRequest*request=[NSMutableUrlRequestWithURL:[NSURL URLWithString:UPLOADDATA_URL]];
[请求设置HttpMethod:@“POST”];
NSString*boundary=@“14737809831466499882746641449”;
NSString*contentType=[NSString stringWithFormat:@“多部分/表单数据;边界=%@”,边界];
[请求addValue:contentType for HttpHeaderField:@“内容类型”];
//--使用以下方法将数据追加到posr url中
NSMutableData*正文=[NSMutableData];
//项目ID
[body appendData:[[NSString stringWithFormat:@“\r\n--%@\r\n”,边界]数据使用编码:NSUTF8StringEncoding];
[body appendData:[[NSString stringWithFormat:@“内容处理:表单数据;名称=\”%@\“\r\n\r\n”,@“项目id”]数据使用编码:NSUTF8StringEncoding];
[body appendData:[[NSString stringWithFormat:@“%@”,projectId]dataUsingEncoding:NSUTF8StringEncoding];
//日期
[body appendData:[[NSString stringWithFormat:@“\r\n--%@\r\n”,边界]数据使用编码:NSUTF8StringEncoding];
[body appendData:[[NSString stringWithFormat:@“内容处理:表单数据;名称=\”%@\“\r\n\r\n”,@“日期”]数据使用编码:NSUTF8StringEncoding];
[body appendData:[[NSString stringWithFormat:@“%@”,dateString]dataUsingEncoding:NSUTF8StringEncoding];
//用户ID
[body appendData:[[NSString stringWithFormat:@“\r\n--%@\r\n”,边界]数据使用编码:NSUTF8StringEncoding];
[body appendData:[[NSString stringWithFormat:@“内容处理:表单数据;名称=\”%@\“\r\n\r\n”,@“用户id”]数据使用编码:NSUTF8StringEncoding];
[body appendData:[[NSString stringWithFormat:@“%@”,userID]dataUsingEncoding:NSUTF8StringEncoding];
//评论
[body appendData:[[NSString stringWithFormat:@“\r\n--%@\r\n”,边界]数据使用编码:NSUTF8StringEncoding];
[body appendData:[[NSString stringWithFormat:@“内容处置:表单数据;名称=\”%@\“\r\n\r\n”,@“注释”]dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@“%@”,projectNoteTextView.text]数据使用编码:NSUTF8StringEncoding];
//任务ID
[body appendData:[[NSString stringWithFormat:@“\r\n--%@\r\n”,边界]数据使用编码:NSUTF8StringEncoding];
[body appendData:[[NSString stringWithFormat:@“内容处置:表单数据;名称=\”%@\“\r\n\r\n”,@“任务分配id”]数据使用编码:NSUTF8StringEncoding];
[body appendData:[[NSString stringWithFormat:@“%@”,任务Id]数据使用编码:NSUTF8StringEncoding];
[body appendData:[[NSString stringWithFormat:@“\r\n--%@\r\n”,边界]数据使用编码:NSUTF8StringEncoding];

图像_名称=[NSString stringWithFormat:@“%@%d”,“图像”,y]; NSLog(@“图像名称:%@”,图像名称); UIImage*imageFile=[arrImage objectAtIndex:y]; CGSize newSize=CGSizeMake(500.0f,500.0f); UIGraphicsBeginImageContext(新闻大小); [imageFile drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; UIImage*newImage=UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsSendImageContext(); //NSData*dataImg=[NSData dataWithData:UIImagePNGRepresentation(newImage)];//压缩的Imge //NSData*dataImg=[NSData dataWithData:UIImagePNGRepresentation([arrImage objectAtIndex:y]); NSLog(@“图像,发送到服务器:%@”,数据img); NSLog(@“添加了%i”,y+1); [body appendData:[[NSString stringWithFormat:@“内容处理:表单数据;名称=\“站点\图像\”;文件名=\“%@\”\r\n”,图像\名称]数据使用编码:NSUTF8StringEncoding]; [body appendData:[@“内容类型:应用程序/八位字节流\r\n\r\n”数据使用编码:NSUTF8StringEncoding]; [body appendData:[NSData dataWithData:dataImg]]; [body appendData:[[NSString stringWithFormat:@“\r\n--%@--\r\n”,边界]数据使用编码:NSUTF8StringEncoding]; //--通过URL向服务器发送数据 [请求setHTTPBody:body]; //--从服务器获取响应 NSData*responseData=[NSURLConnection sendSynchronousRequest:request ReturnInResponse:nil错误:nil]; //--使用响应数据进行JSON解析 结果=[NSJSONSerialization JSONObjectWithData:responseData选项:NSJSONReadingMutableContainers错误:nil]; NSLog(@“结果=%@”,结果); } [self-showAlertMessage:[result objectForKey:@“message”]; }
您可以使用此代码。它已经过测试,我正在使用这种方法上传多个图像以及其他参数

    if([arrImage count])
{
    for (int y = 0; y < [arrImage count]; y++)
    {
        //-- Convert string into URL
        NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:[NSURL  URLWithString:UPLOADDATA_URL]];

        [request setHTTPMethod:@"POST"];
        NSString *boundary = @"14737809831466499882746641449";
        NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
        [request addValue:contentType forHTTPHeaderField: @"Content-Type"];

        //-- Append data into posr url using following method
        NSMutableData *body = [NSMutableData data];


        //Project ID
        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",@"project_id"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"%@",projectId] dataUsingEncoding:NSUTF8StringEncoding]];

        //Date
        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",@"date"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"%@",dateString] dataUsingEncoding:NSUTF8StringEncoding]];

        //User ID
        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",@"user_id"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"%@",userID] dataUsingEncoding:NSUTF8StringEncoding]];

        //Comment
        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",@"comment"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"%@",projectNoteTextView.text] dataUsingEncoding:NSUTF8StringEncoding]];

        //Task ID
        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",@"task_assign_id"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"%@",task_Id] dataUsingEncoding:NSUTF8StringEncoding]];

        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

        image_name =[NSString stringWithFormat:@"%@%d",@"image",y];
        NSLog(@"IMAGE NAME:%@", image_name);

        UIImage*  imageFile = [arrImage objectAtIndex:y];

        CGSize newSize = CGSizeMake(500.0f, 500.0f);
        UIGraphicsBeginImageContext(newSize);
        [imageFile drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
        UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

        //  NSData *dataImg = [NSData dataWithData:UIImagePNGRepresentation(newImage)]; //compressed Imge
        //  NSData *dataImg = [NSData dataWithData:UIImagePNGRepresentation([arrImage objectAtIndex:y])];

        NSLog(@"Images, send to server:%@", dataImg);
        NSLog(@"added %i", y+1);

        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"site_image\"; filename=\"%@\"\r\n",image_name] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[NSData dataWithData:dataImg]];

        [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

        //-- Sending data into server through URL
        [request setHTTPBody:body];

        //-- Getting response form server
        NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

        //-- JSON Parsing with response data
        result = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:nil];
        NSLog(@"Result = %@",result);
    }

    [self showAlertMessage:[result objectForKey:@"message"]];
}
if([arrImage count])
{
对于(int y=0;y<[arrImage count];y++)
{
//--将字符串转换为URL
NSMutableURLRequest*request=[NSMutableUrlRequestWithURL:[NSURL URLWithString:UPLOADDATA_URL]];
[请求设置HttpMethod:@“POST”];
NSString*boundary=@“14737809831466499882746641449”;
NSString*contentType=[NSString stringWithFormat:@“多部分/表单数据;边界=%@”,边界];
[请求addValue:contentType for HttpHeaderField:@“内容类型”];
//--使用以下方法将数据追加到posr url中
NSMutableData*正文=[NSMutableData];
//项目ID
[body appendData:[[NSString stringWithFormat:@“\r\n--%@\r\n”,边界]数据使用编码:NSUTF8StringEncodin