
//这里是我的新方法女巫工作finex to @sgosha:
- (voID) upload { Nsstring *urlString = @"http://www.examplescript.com"; NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; [request setURL:[NSURL URLWithString:urlString]]; [request sethttpMethod:@"POST"]; NSMutableData *body = [NSMutableData data]; Nsstring *boundary = [Nsstring stringWithString:@"---------------------------14737809831466499882746641449"]; Nsstring *ContentType = [Nsstring stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; [request addValue:ContentType forhttpheaderFIEld:@"Content-Type"]; // file NSData *imageData = UIImageJPEGRepresentation(imageVIEw.image,90); [body appendData:[[Nsstring stringWithFormat:@"--%@\r\n",boundary] dataUsingEnCoding:NSUTF8StringEnCoding]]; [body appendData:[[Nsstring stringWithString:@"Content-disposition: attachment; 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 stringWithString:@"\r\n"] dataUsingEnCoding:NSUTF8StringEnCoding]]; // Text parameter1 Nsstring *param1 = @"parameter text"; [body appendData:[[Nsstring stringWithFormat:@"--%@\r\n",boundary] dataUsingEnCoding:NSUTF8StringEnCoding]]; [body appendData:[[Nsstring stringWithFormat:@"Content-disposition: form-data; name=\"parameter1\"\r\n\r\n"] dataUsingEnCoding:NSUTF8StringEnCoding]]; [body appendData:[[Nsstring stringWithString:param1] dataUsingEnCoding:NSUTF8StringEnCoding]]; [body appendData:[[Nsstring stringWithString:@"\r\n"] dataUsingEnCoding:NSUTF8StringEnCoding]]; // Another text parameter Nsstring *param2 = @"Parameter 2 text"; [body appendData:[[Nsstring stringWithFormat:@"--%@\r\n",boundary] dataUsingEnCoding:NSUTF8StringEnCoding]]; [body appendData:[[Nsstring stringWithFormat:@"Content-disposition: form-data; name=\"parameter2\"\r\n\r\n"] dataUsingEnCoding:NSUTF8StringEnCoding]]; [body appendData:[[Nsstring stringWithString:param2] dataUsingEnCoding:NSUTF8StringEnCoding]]; [body appendData:[[Nsstring stringWithString:@"\r\n"] dataUsingEnCoding:NSUTF8StringEnCoding]]; // close form [body appendData:[[Nsstring stringWithFormat:@"--%@--\r\n",boundary] dataUsingEnCoding:NSUTF8StringEnCoding]]; // set request body [request sethttpBody:body]; //return and test NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; Nsstring *returnString = [[Nsstring alloc] initWithData:returnData enCoding:NSUTF8StringEnCoding]; NSLog(@"%@",returnString);} //旧问题:
显然,这太容易,没有工作!我在控制台或任何东西没有得到任何错误,图像上传,但文本不发送。有任何想法吗?
Btw:服务器端脚本是一个非常简单的PHP脚本。
解决方法 尝试此(修改):NSMutableData *body = [NSMutableData data];// file[body appendData:[[Nsstring stringWithFormat:@"--%@\r\n",boundary] dataUsingEnCoding:NSUTF8StringEnCoding]];[body appendData:[[Nsstring stringWithString:@"Content-disposition: attachment; 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 stringWithString:@"\r\n"] dataUsingEnCoding:NSUTF8StringEnCoding]];// text parameter[body appendData:[[Nsstring stringWithFormat:@"--%@\r\n",boundary] dataUsingEnCoding:NSUTF8StringEnCoding]];[body appendData:[[Nsstring stringWithFormat:@"Content-disposition: form-data; name=\"parameter1\"\r\n\r\n"] dataUsingEnCoding:NSUTF8StringEnCoding]];[body appendData:[parameterValue1 dataUsingEnCoding:NSUTF8StringEnCoding]];[body appendData:[[Nsstring stringWithString:@"\r\n"] dataUsingEnCoding:NSUTF8StringEnCoding]];// another text parameter[body appendData:[[Nsstring stringWithFormat:@"--%@\r\n",boundary] dataUsingEnCoding:NSUTF8StringEnCoding]];[body appendData:[[Nsstring stringWithFormat:@"Content-disposition: form-data; name=\"parameter2\"\r\n\r\n"] dataUsingEnCoding:NSUTF8StringEnCoding]];[body appendData:[parameterValue2 dataUsingEnCoding:NSUTF8StringEnCoding]];[body appendData:[[Nsstring stringWithString:@"\r\n"] dataUsingEnCoding:NSUTF8StringEnCoding]];// close form[body appendData:[[Nsstring stringWithFormat:@"--%@--\r\n",boundary] dataUsingEnCoding:NSUTF8StringEnCoding]];// set request body[request sethttpBody:body];总结
以上是内存溢出为你收集整理的iphone – Objective C:如何使用HTTP POST上传图像和文本?全部内容,希望文章能够帮你解决iphone – Objective C:如何使用HTTP POST上传图像和文本?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)