2011-08-12 3 views
0

Tous, J'utilise RestKit pour iOS pour télécharger un fichier JPEG sur mon service Web Java. Je me suis référé à thisHTTP/1.1 200 213 sur Tomcat lors du chargement de fichier jpeg à l'aide de RESTKit

tutoriel pour le développement de service de téléchargement de fichiers Web et il fonctionne parfaitement bien quand je l'utilise via mon navigateur Web.

Cependant, lorsque j'essaie de télécharger un fichier en utilisant RESTKit, puis dans les journaux TOMCAT, j'obtiens le code d'état HTTP/1.1 200 213 et mon fichier n'est pas téléchargé.

Voici mon code RESTKit:

RKObjectManager* manager = [RKObjectManager sharedManager]; 
RKObjectLoader* objectLoader = [manager objectLoaderWithResourcePath:@"/fileuploaded" delegate:self]; 
objectLoader.method = RKRequestMethodPOST; 

UIImage *image = [UIImage imageNamed:@"rental_car_bill.jpeg"]; 
NSData *imageData = UIImageJPEGRepresentation(image, 1.0); 
// attach image 
RKParams *params = [RKParams paramsWithDictionary:(NSDictionary*)objectLoader.params]; 
RKParamsAttachment *attachment = [params setData:imageData 
             MIMEType:@"image/jpeg" forParam:@"photo"]; 
attachment.fileName = @"samplejpeg"; 
objectLoader.params = params; 
objectLoader.targetObject = self; 
[objectLoader send]; 

EDIT: Au-dessus de la mise en œuvre fonctionne et le fichier ne se laisse uploadé. Cependant, dans la méthode déléguée: - (void) objectLoader: (RKObjectLoader *) objectLoader didLoadObjects: (NSArray *) objets

Après sort de la portée de cela, alors mes accidents d'application à [RKObjectLoader dealloc];

Répondre

0

Pour télécharger des images à l'aide restkit j'utilise les méthodes suivantes, je préfère utiliser des blocs pour éviter des problèmes sur mon application, peut-être de cette façon vous pouvez éviter votre accident:

- (void) upload: (KFMedia *) pic onLoad:(RKObjectLoaderDidLoadObjectBlock) loadBlock onError:(RKRequestDidFailLoadWithErrorBlock)failBlock{ 

    //pic.image returns an UIImage 
    RKParams* imageParams = [RKParams params]; 
    NSData* imageData = UIImageJPEGRepresentation(pic.image, 0.7f); 
    [imageParams setData:imageData MIMEType:@"image/jpg" forParam:@"FileUpload"]; 
    NSString *resourcePath = @"/api/upload/"; 


    //My API Server will return a JSON that represents my KFMedia Class after uploading the image, so here I get the propper mapping for that 
    RKObjectMapping *mapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[KFMedia class]]; 

    [[RKObjectManager sharedManager] loadObjectsAtResourcePath:resourcePath usingBlock:^(RKObjectLoader *loader) { 
     loader.method = RKRequestMethodPOST; 
     loader.params = imageParams; 
     [self settingsForLoader:loader withMapping:mapping onLoad:loadBlock onError:failBlock]; 

    }]; 

} 

- (void) settingsForLoader: (RKObjectLoader *) loader withMapping: (RKObjectMapping *) mapping onLoad:(RKObjectLoaderDidLoadObjectBlock) loadBlock onError:(RKRequestDidFailLoadWithErrorBlock)failBlock{ 

    loader.objectMapping = mapping; 
    loader.delegate = self; 
    loader.onDidLoadObject = loadBlock; 
    loader.onDidFailWithError = ^(NSError * error){ 
     NSLog(@"%@",error); 
    }; 
    loader.onDidFailLoadWithError = failBlock; 
    loader.onDidLoadResponse = ^(RKResponse *response) { 
     [self fireErrorBlock:failBlock onErrorInResponse:response]; 
    }; 

} 
Questions connexes