2012-01-12 85 views
0

我一直避免使用ASIFormDataRequest,因为它不太适合我的需求,并且有太多的代码来满足我的简单需求。iOS上传图像文件NSData并获取POST PHP变量

SO:

我发现了几个其他的代码块,但是其中没有一个成功地传送和vraiables或上方作为图像不显示并且响应doesn'y显示VARS的图像数据。

下面是代码:

NSData * imageData = myImageData; 

NSString *urlString = [[self getDBCGIFolder] stringByAppendingString:DATABASE_PATH_UPLOAD_PORTRAIT]; 

NSString *values = @"&accountID:"; 
values = [values stringByAppendingString:myAccountID]; 
values = [values stringByAppendingString:@"&shit:"]; 
values = [values stringByAppendingString:@"SHITE"]; 
NSData *valueData = [values dataUsingEncoding:NSUTF8StringEncoding]; 

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

NSLog(urlString); 

NSMutableData *postBody = [NSMutableData data]; 
[postBody appendData:[NSData dataWithData:imageData]]; 
[postBody appendData:[NSData dataWithData:valueData]]; 


[request setHTTPBody:postBody]; 

// now lets make the connection to the web 
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; 

NSLog(@"--%@", returnString); 

此代码让我最远的,在XML坚实的回复字符串,让我检查的PHP脚本到达的数据,但没有数据似乎那里。

有人吗?

+0

'没有数据似乎到达那里'你的意思是在请求正文0字节或脚本无法解析它以你期望的方式吗? – 2012-01-12 22:09:46

回答

0

它看起来像要提交多部分表单数据,但在该代码中,您将追加字符串和图像数据而不将它们编码为单独的值。 ASIHTTPRequest和AFNetworking都提供了这种功能,所以虽然看起来更容易推出自己的产品,但更好的方式是让其中一个更深一层。