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)
。
并且“工作正常”是指将图像上传到服务器然后进行处理和保存。
只要我在这里,将图像上传到服务器的更好方法是什么?
感谢您的帮助,
标记