【问题标题】:Problem with uploading image (iphone sdk, multipartform-data)上传图片的问题(iphone sdk,多部分表单数据)
【发布时间】:2010-06-25 12:46:35
【问题描述】:

我需要上传图片到自定义服务器。我有这样的代码:

NSString* boundary = @"blablablablabla";
NSString* boundaryString = [NSString stringWithFormat:@"\r\n--%@\r\n", boundary];
NSString* boundaryStringFinal = [NSString stringWithFormat:@"\r\n--%@--\r\n", boundary];

NSMutableData* postData = [NSMutableData dataWithCapacity:[imageData length] + 1024];

NSString* s = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"s\"\r\n\r\n%@\r\n", @"addimage"];
NSString* ad = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"ad\"\r\n\r\n%@\r\n", adIdx];
NSString* u = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"u\"\r\n\r\n%@\r\n", uid];

[postData appendData:[boundaryString dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:[s dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:[ad dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:[u dataUsingEncoding:NSUTF8StringEncoding]];

[postData appendData:[boundaryString dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"image\";\r\nfilename=\"image.jpg\"\r\nContent-Type: image/jpg\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:imageData];
[postData appendData:[boundaryStringFinal dataUsingEncoding:NSUTF8StringEncoding]];

NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http:a.b.c/d.php"]];
[request setHTTPMethod:@"POST"];

NSString* dataLength = [NSString stringWithFormat:@"%d", [postData length]];
[request addValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary] forHTTPHeaderField:@"Content-Type"];
[request addValue:@"a.b.c" forHTTPHeaderField:@"Host"];
[request addValue:dataLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];

[NSURLConnection connectionWithRequest:request delegate:self];

看起来不错,但是为了响应这个请求,我有这样的一行:“缺少参数 u”。 谁能告诉我问题出在哪里?

【问题讨论】:

  • 您可能想展示一个示例,说明您的特定服务器的工作请求是什么样的,然后您的代码生成的请求是什么样的。

标签: objective-c iphone post upload multipartform-data


【解决方案1】:

missing parameter u 消息几乎肯定来自服务器上的 PHP。我认为它应该在"u"\r\n\r\n 结构之一中。你需要知道服务器期望什么来解决它。

我建议您将发布请求转储为字符串,粘贴到浏览器中,看看您是否可以让它工作。这样,您可以确保您了解请求的正确形式,以便您可以在代码中构建它。

【讨论】:

    猜你喜欢
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 2021-07-26
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多