1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Exercicio iOS

Discussão em 'Programação' iniciada por berlos, 15 de Agosto de 2012. (Respostas: 0; Visualizações: 589)

  1. Oi ppl preciso da vossa ajuda neste exercício:

    Desenvolver uma subclasse de NSOperation que faça o upload de um ficheiro para um endereço HTTP e que seja cancelável a meio do upload (assumir que o ficheiro e o endereço são passados como parâmetros no construtor ou propriedades).
    Alguém me pode dizer como o fazer?
    O código para fazer o upload do file para o php server já tá a funcionar a minha dúvida é como vou agora utilizar o NSOperation.

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *imagePath = [documentsDirectory stringByAppendingPathComponent:filename];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

    [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
    [request setHTTPShouldHandleCookies:NO];
    [request setTimeoutInterval:20];
    [request setHTTPMethod:@"POST"];

    NSString *boundary = @"------WebKitFormBoundary4QuqLuM1cE5lMwCy";

    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
    [request setValue:contentType forHTTPHeaderField: @"Content-Type"];

    NSMutableData *body = [NSMutableData data];
    NSString *FileParamConstant = @"uploadFile";
    NSData *imageData = [[NSData alloc] initWithContentsOfFile:imagePath];

    NSMutableDictionary *parameters = [[NSMutableDictionary alloc] initWithCapacity:11];
    [parameters setValue:@"Value" forKey:@"Server_required_param"];

    NSString *urlString = @"http://www.omeuendereco/uploadFile.php";

    for (NSString *param in parameters) {

    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n", FileParamConstant, filename] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithString:@"Content-Type: image/jpeg\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:imageData];
    [body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    }

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

    [request setHTTPBody:body];
    [request setURL:[NSURL URLWithString:urlString]];

    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
    delegate:up
    startImmediately:YES];

    [connection start];


    Obrigado
     
    Última edição: 15 de Agosto de 2012

Partilhar esta Página