1

私はアプリケーションを開発しています。サーバーに100枚以上の画像をアップロードする必要があります。ここでAFNetworkingを使用しているimaは私のコードです`

AFHTTPClient *client= [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://myserver/upload_video.php"]];
        NSDictionary* params = [NSDictionary dictionaryWithObjectsAndKeys:@"saveMediaVideo", @"methodName",userID,@"user_id",[NSString stringWithFormat:@"%d",[imageArray count]],@"img_count",@"480.0000",@"img_height" , nil];

        NSMutableURLRequest *request = [client multipartFormRequestWithMethod:@"POST" path:@"http://myserver/upload_video.php" parameters:params constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
            for (int i =0; i<[imageArray count]; i++) {
                NSData *imageToUpload = UIImageJPEGRepresentation([imageArray objectAtIndex:i], 1.0);
            [formData appendPartWithFileData: imageToUpload name:@"media[]" fileName:[NSString stringWithFormat:@"temp_%d.jpg",i] mimeType:@"image/jpeg"];
            }
        }];
       AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

        [operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
            NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite);
        }];
        [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
            NSString *response = [operation responseString];
            NSLog(@"response: [%@]",response);
           [self performSelector:@selector(killHUD) withObject:@"Processing..."];
            CustomAlertPopUp *alert = [[CustomAlertPopUp alloc]initWithHeaderText:@"Message" detailText:@"Spin uploaded on Server." buttonTitle:@"Ok" withTag:10 forTarget:self];
            [alert showView:self.view];
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            [self performSelector:@selector(killHUD) withObject:@"Processing..."];
            if([operation.response statusCode] == 403){
                NSLog(@"Upload Failed");
                return;
            }
            NSLog(@"error: %@", [operation error]);
            CustomAlertPopUp *alert = [[CustomAlertPopUp alloc]initWithHeaderText:@"Error" detailText:@"Error from server, Please try again." buttonTitle:@"Ok" withTag:0 forTarget:self];
            [alert showView:self.view];
        }];
        [operation start];

`

私はNSLog完全なプロセスを観察することができます、

2013-02-15 19:15:37.755 MyProject[5815:907] Sent 6856280 of 6871277 bytes
2013-02-15 19:15:37.757 MyProject[5815:907] Sent 6859176 of 6871277 bytes
2013-02-15 19:15:37.759 MyProject[5815:907] Sent 6862072 of 6871277 bytes
2013-02-15 19:15:37.760 MyProject[5815:907] Sent 6864968 of 6871277 bytes
2013-02-15 19:15:37.762 MyProject[5815:907] Sent 6867864 of 6871277 bytes
2013-02-15 19:15:37.780 MyProject[5815:907] Sent 6871277 of 6871277 bytes

プロセスが完了することを意味します。しかし、サーバー側では10枚の画像しか取得できません。私を案内してください..なぜこれが起こるのか。

4

2 に答える 2

1

これは、サーバー側の問題である可能性が非常に高いです。PHPには、1回のリクエストで転送できるデータの量を制限する機能を備えた設定がいくつかあります。

設定は以下の通りです-

どちらもphp.iniファイルに設定できます。。特定のファイルの場所は、を実行して見つけることができますphpinfo()

于 2013-02-15T14:33:51.203 に答える
0

サーバーの問題でした。.iniサポート担当者が値max_file_uploadsを500に変更した2つのファイルを備えた専用サーバーがありました。それは機能しました。

于 2013-02-18T13:29:31.690 に答える