0

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).

“工作正常”是指图像被上传到服务器,然后处理和保存。

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

谢谢您的帮助,

标记

4

0 回答 0