NSURLConnection - 可以使用3G而不是3GS将图像上传到服务器

时间:2012-05-05 01:02:37

标签: ios xcode nsurlconnection

iOS新手,我正在尝试将图片上传到我的服务器。

我在网上发现了一个“教程”,它使用的是iPhone 3G而不是3GS。两者都运行4.2.1。

当用户从库中选择图像或选择新图像后单击Upload按钮时,将调用此方法:

 - (IBAction)pushUpload {
NSData *imageData = UIImageJPEGRepresentation(imageView.image, 0.9);

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:myURL]];
[request setHTTPMethod:@"POST"];

NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
[request addValue:contentType forHTTPHeaderField:@"Content-Type"];

NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"userfile\"; filename=\".jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSLog(@"ReturnData: %@", returnData);

}

myURL是一个NSString,其中包含服务器端php脚本的url。它来自FlipsideViewController xib上的文本字段。

正如我所说,这适用于3G但不适用于3GS。当我在3G上运行时记录returnData我得到<>并且在3GS上运行时我得到(null)。我不确定<>是什么,但它明显优于(null)

并且“工作正常”是指将图像上传到服务器然后进行处理和保存。

只要我在这里,将图像上传到服务器的更好方法是什么?

感谢您的帮助,

标记

0 个答案:

没有答案