2010-06-25 8 views
0

이미지를 사용자 지정 서버에 업로드해야합니다. 나는 다음과 같은 코드를 가지고있다.이미지 업로드 문제 (iphone sdk, multipartform-data)

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]; 

이 요청에 대한 응답으로 나는 좋아 보인다. "Missing paramter u". 누군가가 문제가있는 곳을 말해 줄 수 있습니까?

+0

특정 서버에 대한 작동 요청이 어떻게 생겼는지 그리고 생성 된 요청을 코드화 한 내용이 어떻게 보이는지 보여줄 수 있습니다. – TechZen

답변

0

missing parameter u 메시지는 거의 확실하게 서버의 PHP에서 나옵니다. 나는 그것이 "u"\r\n\r\n 구조 중의 1 개에 있어야한다라고 추정한다. 서버가 그 문제를 해결하기 위해 무엇을 기대하는지 알아야합니다.

게시물 요청을 문자열로 덤프하고 브라우저에 붙여넣고 작동하도록 할 수 있는지 확인해 보시기 바랍니다. 그렇게하면 요청의 적절한 형식을 이해할 수 있으므로 코드로 작성할 수 있습니다.