上传图像数组会出现问题(ASIHTTPRequest)

发布于 2024-12-10 13:19:11 字数 2716 浏览 0 评论 0原文

我正在使用 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:请求”中。我怎样才能在发布时为每张图片指定一个特定的名称?

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];
            }

I'm using the ASIHTTPRequest Library to send multiple images via a webservice. I've got an array of 2 images and like to send them. However only the latest image is being uploaded. I think it's because of the fact that image 2 is overwriting image 1 because their names are the same.

How can I change the name of every image that's within my array so that all the files are being uploaded properly?

Here's my code

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];

EDIT

Here's my code for so far. First I'm calling my images from my documents directory -> Convert it to NSData -> Putting the NSData in a Array -> Putting the array inside the 'addData: request'. How can I can I give every image a specific name when it's being posted?

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];
            }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浮萍、无处依 2024-12-17 13:19:11

肯定是你的文件名错了。 [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];

Definitely your filename is wrong. [NSString stringWithFormat:@"image.jpeg", i]; is not a valid format.

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];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文