服务器从iPhone App发布时无法获取图像数据

时间:2013-01-10 10:44:16

标签: iphone ios objective-c http

我将多个图片发布到服务器网址,但我面临一个问题。 发布图像数据后,serever只获取我发送的图像数据。剩余的数据为空。但是在发布时我可以打印数据(NSLog)

请帮我理解这个问题 在这里提供我的代码

UploadImageViewController.m

-(IBAction)upPic:(id)sender{
UploadImage *up_image = [[UploadFood alloc] init];

  [up_image sendServerRequests:[NSDictionary  dictionaryWithObjectsAndKeys:@"pic1.jpg",@"filename",@"pic2.jpg",@"filename2", nil]  file:sharedClass.picData file1:sharedClass.picData2];


   }  

UploadImage.m

-(void)sendServerRequests:(NSDictionary *)bits file:(NSData *)file file1:(NSData *)file1 file2:(NSData *)file2 {
 NSLog(@"file  %@",file );


 [postbody appendData:[NSData dataWithData:file]];

 [postbody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data;  name=\"image2\"; filename=\"%@\"\r\n", [bits objectForKey:@"filename2"]]  dataUsingEncoding:NSUTF8StringEncoding]];
 [postbody appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

  NSLog(@"file1 %@",file1);


  [postbody appendData:[NSData dataWithData:file1]];

  [postbody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"image3\"; filename=\"%@\"\r\n", [bits objectForKey:@"filename3"]] dataUsingEncoding:NSUTF8StringEncoding]];
  [postbody appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

  NSLog(@"file2 %@",file2);  // i am able to print data here

  [postbody appendData:[NSData dataWithData:file2]];



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


   [request setHTTPBody:postbody];


  conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
    if (conn) {
    webData = [NSMutableData data];
   }


  }

1 个答案:

答案 0 :(得分:1)

嘿Nithin MK AS根据你的代码你做的一切都没问题。

在当前情况下,只有第一个文件在服务器上传。我想如果你没有上传第一个文件并上传第二个文件就会被上传。

所以我建议你可以使用这个数组。如果您的web服务使用php / .net,则可以使用该数组作为文件名。

所以尝试使用

  

名= \ “图像2 [] \”;

     

名= \ “图像3 [] \”;

并请用此检查您的网络服务。 谢谢,