2012-07-07 2 views
0

이봐, 난이 다음 코드를 사용하여 맥 응용 프로그램 :ASIHttpRequest 업로드 이미지

NSURL *url; 
     url = [NSURL URLWithString:@"http://yfrog.com/api/xauth_upload"]; 

     ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease]; 

     [request setDelegate:self]; 
     [request setUseCookiePersistence:NO]; 
     [request setUploadProgressDelegate:self]; 
     [request showAccurateProgress]; 
     [request signRequestWithClientIdentifier:@"w" secret:@"x" tokenIdentifier:@"y" secret:@"z" usingMethod:ASIOAuthHMAC_SHA1SignatureMethod]; 
     [request setPostValue:@"a" forKey:@"key"]; 
    NSData *imageData = [[NSData alloc]initWithContentsOfFile:[draggedFilenames objectAtIndex:0]]; 
    [request setPostValue:imageData forKey:@"media"]; 

     [request startAsynchronous]; 

그러나 문제는 내가 항상 와이프 로그 서버에서이 응답을 얻을 수있다 :

그래서 뭔가를 이미지 업로드에 문제가 있습니다.

[request setData:UIImageJPEGRepresentation(picture, 0.8) withFileName:@"filename.jpg" andContentType:@"image/jpeg" forKey:@"media"]; 

을하지만 UIIMageJPEGRepresentation 같이있는 방법이 없기 때문에이 코코아 (Mac)를 작동하지 않습니다 아이폰에 그것은 다음과 같이 작동합니다. 인증이 작동해도 문제가되지 않습니다. 그것은 여기에서 asihttprequest + OAuth는 래퍼 출신 signRequestWithClientIdentifier이 방법에 대해 문의하는 경우 : https://github.com/keybuk/asi-http-request-oauth

그래서 내가 어떻게 제대로 이미지를 업로드 할 수 있습니까?

고마워요.

답변

2
NSData* NSImageJPEGRepresentation(NSImage* image, CGFloat compressionQuality) 
{ 
    if(nil == image)return nil; 
    NSDictionary *dict; 
    dict = [NSDictionary dictionaryWithObjectsAndKeys: 
      [NSNumber numberWithFloat:compressionQuality], 
      NSImageCompressionFactor, 
      nil]; 

    NSBitmapImageRep* imageRep; 
    imageRep = [NSBitmapImageRep imageRepWithData:[image TIFFRepresentation]]; 
    return [imageRep representationUsingType:NSJPEGFileType 
            properties:dict]; 
} 
+0

감사합니다. – dehlen