Exercicio iOS

berlos

Membro
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:
Back
Topo