【问题标题】:Uploadin Image - Objective C [closed]上传图片 - 目标 C [关闭]
【发布时间】:2010-06-09 03:16:38
【问题描述】:

我在 youtube xD 上找到了这段代码,我的问题是,如何添加额外的参数?

 NSData *imageData = UIImageJPEGRepresentation(imagen.image,0.0);
 NSString *urlString = @"http://urlexample.com/upload.php";
 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--%@\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];
 NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];

 NSLog(returnString);

我试试

[body appendData:[[NSString stringWithFormat:@"extra=%@",info] dataUsingEncoding:NSUTF8StringEncoding];

呵呵,正如您所见,我对此 100% 是新的。请帮帮我xD

【问题讨论】:

  • 您能否格式化您的代码。对我来说根本无法阅读
  • 是否要在 URL 中添加参数?
  • 是的,还有 php 文件的额外发布数据,例如对该图像的评论

标签: ios objective-c file-upload


【解决方案1】:

我最近遇到了this earlier thread,我认为您正在寻找类似这样的东西来添加一个名为 foo 的字段并将其设置为 bar:

[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"foo\"\r\n\r\nbar\n"]]];

【讨论】:

  • 是的,但由于某种原因没有工作,我在 php 文件上创建了一个 print_r($_POST) 以对响应进行 nslog 并显示 Array();
猜你喜欢
  • 1970-01-01
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-18
相关资源
最近更新 更多