Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Afnetworking上载图像在ios8中不起作用_Ios_Afnetworking - Fatal编程技术网

使用Afnetworking上载图像在ios8中不起作用

使用Afnetworking上载图像在ios8中不起作用,ios,afnetworking,Ios,Afnetworking,我已经在ios7中完成了多个图像上传。但它在ios 8中不起作用。我在下面展示了我的代码。请建议我该怎么办 NSString *url = [NSString stringWithFormat:@"%@abc.php", SERVERNAME]; [manager POST:url parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { for (in

我已经在ios7中完成了多个图像上传。但它在ios 8中不起作用。我在下面展示了我的代码。请建议我该怎么办

NSString *url = [NSString stringWithFormat:@"%@abc.php", SERVERNAME]; [manager POST:url parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData)  {
        for (int i = 0; i < filesCount; i++) {
            NSString *imgName = [NSString stringWithFormat:@"image%d", (int)(i + 1)];
            NSData *imgData = [[NSData alloc] initWithContentsOfFile:[dataPath stringByAppendingPathComponent:[NSString stringWithFormat:@"/%@", filelist[i]]]];
            [formData appendPartWithFileData:imgData name:imgName fileName:filelist[i] mimeType:@"image/png"];
        }
         } success:^(AFHTTPRequestOperation *operation, id responseObject) {  NSLog("getting response");      } Failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        //NSLog(@"Error: %@ ***** %@", operation.responseString, error);

    }];
调试点不在成功部分。 你能帮我解决这个问题吗


提前感谢。

您可以使用下面的代码从POST请求中获得响应

1在项目中添加SBJSON类或NSJSONSerialization类来编码数据

    NSURL *url = [[NSURL alloc]initWithString:@"You -server -url "];

    NSMutableURLRequest *theRequest = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

    // Server parameter dict

    NSDictionary *jsonDict = [[NSDictionary alloc] initWithObjectsAndKeys:txtUserName.text,@"Email",txtPassword.text,@"Password",[appDelegate uniqueIDForDevice],@"DeviceToken",@"ios",@"DeviceType", nil];

    NSString *jsonRequest = [jsonDict JSONRepresentation];
    NSData *requestData = [jsonRequest dataUsingEncoding:NSUTF8StringEncoding];

    [theRequest setHTTPMethod:@"POST"];
    [theRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    [theRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [theRequest setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
    [theRequest setHTTPBody: requestData];


    [NSURLConnection sendAsynchronousRequest:theRequest queue:[NSOperationQueue currentQueue]
                           completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
     {
         NSError *err = nil ;

         NSDictionary *dict=  [NSJSONSerialization JSONObjectWithData :data options : 0 error :&err];

      NSLog(@"%@",dict);
     }];        
}

我试过这种方法

 NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

    NSURL *baseUrl = [NSURL URLWithString:url];

    NSString *charset = (NSString *)CFStringConvertEncodingToIANACharSetName(CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
    [request setURL:baseUrl];
    [request setHTTPMethod:@"POST"];

    NSString *boundary = @"0xKhTmLbOuNdArY";
    NSString *endBoundary = [NSString stringWithFormat:@"\r\n--%@\r\n", boundary];

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

    NSMutableData *tempPostData = [NSMutableData data];
    [tempPostData appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];



    for(int i=0;i<keys.count;i++){
        NSString *str = values[i];
        NSString *key =keys[i];
        NSLog(@"Key Value pair: %@-%@",key,str);
        [tempPostData appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", key] dataUsingEncoding:NSUTF8StringEncoding]];
        [tempPostData appendData:[str dataUsingEncoding:NSUTF8StringEncoding]];
        // [tempPostData appendData:[@"\r\n--%@\r\n",boundary dataUsingEncoding:NSUTF8StringEncoding]];
        [tempPostData appendData:[endBoundary dataUsingEncoding:NSUTF8StringEncoding]];

    }

    //semd multiple images to server
    for (int i = 0; i < filesCount; i++) {

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

        if (i == 0)
        {
            [tempPostData appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"image1\"; filename=\"%@\"\r\n", filelist[0]] dataUsingEncoding:NSUTF8StringEncoding]];
            [tempPostData appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
            [tempPostData appendData:imageData1];
            [tempPostData appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        }

        else if (i == 1)
        {
            [tempPostData appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"image2\"; filename=\"%@\"\r\n", filelist[1]] dataUsingEncoding:NSUTF8StringEncoding]];
            [tempPostData appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
            [tempPostData appendData:imageData2];
            [tempPostData appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        }
        else
        {
            [tempPostData appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"image3\"; filename=\"%@\"\r\n", filelist[2]] dataUsingEncoding:NSUTF8StringEncoding]];
            [tempPostData appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
            [tempPostData appendData:imageData3];
            [tempPostData appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        }
        //        [tempPostData appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
        //        [tempPostData appendData:imgData];

    }




    [tempPostData appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [request setHTTPBody:tempPostData];
    _receivedData = [NSMutableData dataWithCapacity: 0];

    NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
    if( theConnection )
    {

        NSLog(@"request uploading successful");


    }
    else
    {
        _receivedData = nil;
        NSLog(@"theConnection is NULL");
    }
它对我有用。它正在用于上传多个图像。在ios8中,AFN网络仍然存在问题


谢谢

Hi Rob,当出现故障部分时,显示请求超时错误。我还查了imgdata。它有价值。不是零,很好。我想我现在应该在iOS 7下运行这个请求,然后再在iOS 8下运行,看看你是否能看到任何不同。嗨,Karan,谢谢你的回答。但我的问题是,我在使用Afnetworking库在服务器上上传多个图像时遇到了一个问题。在本文中,如何传递上传图像的参数。如果您有任何其他解决方案可以使用Afnetworking library或任何其他概念上传多个图像。然后请与我共享。你好,Asha,在NSArray中添加图像集合,然后将NSArray转换为NSData NSData*requestData=[NSKeyedArchiver archivedDataWithRootObject:];NSString*str=[[NSString alloc]initWithData:requestData编码:NSUTF8StringEncoding];嗨,Kirti和Karan,我试过上一个解决方案。Afnetworking库在ios8中仍然存在问题。谢谢