上传图像数组会出现问题(ASIHTTPRequest)
我正在使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
肯定是你的文件名错了。
[NSString stringWithFormat:@"image.jpeg", i];
不是有效格式。Definitely your filename is wrong.
[NSString stringWithFormat:@"image.jpeg", i];
is not a valid format.