2010-12-15 4 views
0

PHP 스크립트를 통해 전자 메일을 보내고 있습니다. 이것은 NSMutableURLRequest을 사용하여 정상적으로 작동하지만 전자 메일에도 이미지를 첨부하고 싶습니다.보내기 데이터 - NSMutableURLRequest

는 여기에 내가 사용하고 코드입니다 : 나는 이미지를 전송 기술 기사 here을 본 적이

NSMutableURLRequest *request = 
    [[NSMutableURLRequest alloc] initWithURL: 
    [NSURL URLWithString:@"http://example.com/email.php"]]; 

    [request setHTTPMethod:@"POST"]; 

    NSString*subject = [NSString stringWithFormat:@"Images from %@",[[UIDevice currentDevice] name]]; 

    NSString*to = [[NSUserDefaults standardUserDefaults] objectForKey:@"PreferredPrinterEPrint"]; 

    NSString *postString = [NSString stringWithFormat:@"to=%@&message=%@&subject=%@",to,@"hi",subject]; 

    [request setValue:[NSString 
         stringWithFormat:@"%d", [postString length]] 
    forHTTPHeaderField:@"Content-length"]; 

    [request setHTTPBody:[postString 
          dataUsingEncoding:NSUTF8StringEncoding]]; 

    [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

,하지만 난 두 가지를 결합하는 방법을 모르겠어요. 누군가가 친절하게 나를 도와 줄 수 있었습니까?

감사합니다.

답변

1

ASIHTTPRequest에는 ASIFormDataRequest라는 클래스가있어 데이터를 게시하기가 매우 쉽고 한 줄로 파일을 첨부 할 수 있습니다. 나는 그것을 매우 추천한다.

+0

감사합니다 -하지만 너무'NSMutableURLRequest'를 사용하여이 가능합니까? – Pripyat

+0

네가 지적한 링크처럼. ASUHTTPRequest를 사용하기 시작한 이래로 나는 모든 NSURLConnection 항목을 잊어 버렸습니다. –

0

JPEG 이미지를 전송의 예 :

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://example.com/email.php"]]; 

[request setHTTPMethod:@"POST"]; 

NSString *boundary = @"Some string as you like"; 
NSString *value = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; 
[request setValue:value forHTTPHeaderField:@"Content-Type"]; 

NSString *subject = [NSString stringWithFormat:@"Images from %@", [[UIDevice currentDevice] name]]; 
NSString *to = [[NSUserDefaults standardUserDefaults] objectForKey:@"PreferredPrinterEPrint"]; 

NSData *fileData = [NSData dataWithContentsOfFile:<file path>] 

NSMutableString *postDataString = @"".mutableCopy; 
[postDataString appendFormat:@"--%@\r\n", boundary]; 
[postDataString appendFormat:@"Content-Disposition: form-data; name=\"to\"\r\n"]; 
[postDataString appendFormat:@"\r\n%@\r\n", to]; 
[postDataString appendFormat:@"--%@\r\n", boundary]; 
[postDataString appendFormat:@"Content-Disposition: form-data; name=\"message\"\r\n"]; 
[postDataString appendFormat:@"\r\n%@\r\n", @"hi"]; 
[postDataString appendFormat:@"--%@\r\n", boundary]; 
[postDataString appendFormat:@"Content-Disposition: form-data; name=\"subject\"\r\n"]; 
[postDataString appendFormat:@"\r\n%@\r\n", subject]; 
[postDataString appendFormat:@"--%@\r\n", boundary]; 
[postDataString appendFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n", <file name>, <file name>]; 
[postDataString appendFormat:@"Content-Type: image/jpg\r\n"]; 
[postDataString appendFormat:@"Content-Transfer-Encoding: binary\r\n\r\n"]; 

NSMutableData *postData = [postDataString dataUsingEncoding:NSUTF8StringEncoding].mutableCopy; 

[postData appendData:fileData]; 

[postData appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

[request setValue:[NSString stringWithFormat:@"%d", postDataString.length] forHTTPHeaderField:@"Content-length"]; 
[request setHTTPBody:postData]; 

[[NSURLConnection alloc] initWithRequest:request delegate:self];