Загрузка массива изображений вызывает проблемы (ASIHTTPRequest) - PullRequest
0 голосов
/ 19 октября 2011

Я использую библиотеку ASIHTTPRequest для отправки нескольких изображений через веб-сервис.У меня есть массив из 2 изображений, и я хотел бы отправить их.Однако загружается только последнее изображение.Я думаю, это из-за того, что изображение 2 перезаписывает изображение 1, потому что их имена совпадают.

Как я могу изменить имя каждого изображения в моем массиве, чтобы все файлы были загружены правильно?

Вот мой код

NSString* filename2 = [NSString stringWithFormat:@"image.jpeg", i];
NSString *strURL = @"www.thisismyurl.com"; 
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:strURL]];
[request setDelegate:self];
[request setPostValue:@"This is sample text..." forKey:@"text"];

for (int i = 0; i < [array count]; i++) {
    [request addData:[array objectAtIndex:i] withFileName:filename2  andContentType:@"image/jpeg" forKey:[NSString stringWithFormat:@"image%d", i + 1]];
}   
[request startAsynchronous];

РЕДАКТИРОВАТЬ

Вот мой код на данный момент.Сначала я вызываю свои изображения из моего каталога документов -> Преобразовать его в NSData -> Поместить NSData в массив -> Поместить массив в addData: request.Как я могу дать каждому изображению определенное имя при публикации?

NSString *docDir2 = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
            NSString *pngFilePath2 = [NSString stringWithFormat:@"%@/foto2.jpeg",docDir2];
            UIImage *img2 = [[UIImage alloc] initWithContentsOfFile:pngFilePath2];
            NSData *imageData2 = UIImageJPEGRepresentation(img2,0.75);

            NSString *docDir3 = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
            NSString *pngFilePath3 = [NSString stringWithFormat:@"%@/foto3.jpeg",docDir3];
            UIImage *img3 = [[UIImage alloc] initWithContentsOfFile:pngFilePath3];
            NSData *imageData3 = UIImageJPEGRepresentation(img3, 0.75);

            [array addObject:imageData2];
            [array addObject:imageData3];

            [img2 release];
            [img3 release];

            if ([array count] > 0) {

                NSString *strURL = @"this is my url"; 
                ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:strURL]];
                [request setDelegate:self];
                [request setPostValue:@"This is sample text..." forKey:@"text"];
                for (int i = 0; i < [array count]; i++) {

                    [request addData:[array objectAtIndex:i] withFileName:@"image.jpeg"  andContentType:@"image/jpeg" forKey:[NSString stringWithFormat:@"image%d", i + 1]];

                }   
                [request startAsynchronous];


            }
            else {
                UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Message" message:@"You have to make some pictures" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
                [alertView show];
                [alertView release];
            }

1 Ответ

2 голосов
/ 19 октября 2011

Определенно, ваше имя файла неверно. [NSString stringWithFormat:@"image.jpeg", i]; не является допустимым форматом.

NSString *strURL = @"www.thisismyurl.com"; 
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:strURL]];
[request setDelegate:self];
[request setPostValue:@"This is sample text..." forKey:@"text"];

for (int i = 0; i < [array count]; i++) {

    [request addData:[array objectAtIndex:i] 
        withFileName:[NSString strinWithFormat:@"image_%d.jpg", i+1] 
      andContentType:@"image/jpeg" forKey:[NSString stringWithFormat:@"image%d", i + 1]];

 }   
[request startAsynchronous];
...