我有点问题。 我必须使用POST方法将我的iPhone上的照片上传到Web服务器,但服务器文件是在aspx中。 我用我的服务器和PHP文件尝试了我的代码:效果很好! 现在使用aspx文件:不上传:(
我无法访问.aspx。
这是我的iphone代码:
NSData *imageData = UIImageJPEGRepresentation(imageView.image,70);
NSString *urlString = @"http://iphone.domain.net/upload_photos.aspx";
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[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",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"photo\"; filename=\"%@.jpg\"\r\n",[c nom]] 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];
我认为问题来自Content-Type或我的dataUsingEncoding:参数。 你有没有想法解决它?
答案 0 :(得分:0)
通常,当---
中指定边界时,边界不包含Content-Type
。除此之外,看不到任何异常。
答案 1 :(得分:0)
尝试使用curl从命令行将其上传到aspx服务器。一旦你有了这个工作,传递-v
(详细)或-i
(包括HTTP标头)来确切地检查发送的内容,然后你可以尝试在Cocoa中复制它。
答案 2 :(得分:0)
如果您不反对使用第三方库,请考虑查看ASIHttpRequest。它会让你的生活变得如此简单:
http://allseeing-i.com/ASIHTTPRequest/
http://allseeing-i.com/ASIHTTPRequest/How-to-use
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
// Upload a file on disk
[request setFile:@"/Users/ben/Desktop/ben.jpg" withFileName:@"myphoto.jpg" andContentType:@"image/jpeg"
forKey:@"photo"];
// Upload an NSData instance
[request setData:imageData withFileName:@"myphoto.jpg" andContentType:@"image/jpeg" forKey:@"photo"];