iphone – Objective C:如何使用HTTP POST上传图像和文本?

iphone – Objective C:如何使用HTTP POST上传图像和文本?,第1张

概述我已经成功创建了两种不同的方法,每个方法都可以上传图像文本。但我有问题写一个方法,可以同时发布文本和图像! //这里是我的新方法女巫工作finex to @sgosha: - (void) upload { NSString *urlString = @"http://www.examplescript.com"; NSMutableURLRequest *request = [ 我已经成功创建了两种不同的方法,每个方法都可以上传图像或文本。但我有问题写一个方法,可以同时发布文本和图像!

//这里是我的新方法女巫工作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上传图像和文本?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1087690.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存