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
是一个带有 url 的 NSString 到服务器端 php 脚本。它来自 FlipsideViewController xib 上的文本字段。
正如我所说,这适用于 3G 但不适用于 3GS。returnData
当我在 3G 上运行时登录时,我<>
在 3GS 上运行时得到(null)
. 我还不确定是什么<>
,但它显然比(null)
.
“工作正常”是指图像被上传到服务器,然后处理和保存。
只要我在这里,将图像上传到服务器的更好方法是什么?
谢谢您的帮助,
标记