pasar keynote importar guardar descargar cómo convertir como archivos archivo abrir iphone objective-c ipad

iphone - keynote - Cómo descargar docx, pdf, image, pptx o cualquier archivo de internet



cómo convertir un archivo de powerpoint a keynote (2)

Acabo de escribir una aplicación rápida para probar usando NSURLConnection de Apple, que es una solución simple y robusta. Descargué unos cientos de archivos de KB Word y PowerPoint. Para la autenticación utilicé .htaccess. Funciona de maravilla. Aquí está el código relevante.

- (IBAction)clickedDownload:(id)sender { NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://myserver.com/downloadTest/testfile.pptx"]]; NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self]; [connection start]; } -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { // inform the user } -(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge { if ([challenge previousFailureCount] == 0) { NSURLCredential *newCredential; newCredential = [NSURLCredential credentialWithUser:@"theUsername" password:@"thePassword" persistence:NSURLCredentialPersistenceNone]; [[challenge sender] useCredential:newCredential forAuthenticationChallenge:challenge]; } else { [[challenge sender] cancelAuthenticationChallenge:challenge]; // inform the user that password is incorrect } } -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { receivedData = [[NSMutableData alloc] init]; } -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [receivedData appendData:data]; } -(void)connectionDidFinishLoading:(NSURLConnection *)connection { NSURL *docDirectory = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; NSURL *filePath = [docDirectory URLByAppendingPathComponent:@"testfile.pptx"]; [receivedData writeToURL:filePath atomically:YES]; [receivedData release]; connection = nil; }

Ahora abrí los archivos en ~ / Library / Application Support / iPhone Simulator / 4.3.2 / Applications / [unique-application-code] / Documents - ¡funciona muy bien!

Cómo descargar docx, pdf, image, pptx, o cualquier archivo de un sitio que solicite credenciales para autenticación, intenté pasar las credenciales y aún los datos en el nsdata son algo más, pero almacenan que detienen el archivo creado localmente. ¿Alguien puede ayudarlo? el código para descargar cualquier tipo de archivo.

el código es el siguiente: en este botón, se llama a Clicked desde otro archivo DownloadingFile.h

#import "MyAppDelegate.h" @interface DownloadingFile : NSObject { NSMutableData *webData; NSMutableString *soapResults; NSURLConnection *conn; BOOL *elementFound; BOOL isDoneParsing; MyAppDelegate *mydelegate; NSString *userCd,*passWord,*siteUrl; } @property (nonatomic ,retain) MyAppDelegate *mydelegate; -(void)buttonClicked; -(bool)getIsDone; @end

DescargandoFile.m

#import "DownloadingFile.h" #import "iExploreAppDelegate.h" @implementation DownloadingFile @synthesize mydelegate; - (void)buttonClicked { mydelegate=(MyAppDelegate *)[[UIApplication sharedApplication] delegate]; userCd=[[NSString alloc] initWithString:[mydelegate getUserId]]; passWord=[[NSString alloc] initWithString:[mydelegate getPassword]]; NSLog(@"In Downloading; "); NSURL *url =[NSURL URLWithString:[@"http://abcdef.xyz.com/Docs/NewFolder/myFile.docx" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url]; [req setValue:[NSString stringWithFormat:@"bytes=%ld-",0] forHTTPHeaderField:@"Range"]; [req addValue: @"docx" forHTTPHeaderField:@"Content-Type"]; [req setHTTPMethod:@"POST"]; //---set the headers--- conn = [[NSURLConnection alloc] initWithRequest:req delegate:self startImmediately:YES]; if (conn) { NSLog(@"connection done "); webData = [[NSMutableData data] init]; } } -(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge { if([challenge previousFailureCount] == 0) { NSURLCredential *newCredential; newCredential=[NSURLCredential credentialWithUser:userCd password:passWord persistence:NSURLCredentialPersistenceNone]; NSLog(@"Crediantials done "); [[challenge sender] useCredential:newCredential forAuthenticationChallenge:challenge]; } else { [[challenge sender] cancelAuthenticationChallenge:challenge]; NSError* error = [NSError errorWithDomain:@"SoapRequest" code:403 userInfo: [NSDictionary dictionaryWithObjectsAndKeys: @"Could not authenticate this request", NSLocalizedDescriptionKey,nil]]; NSLog(@"Credentials are not valid"); [mydelegate loginFailled:false]; } } -(void) connection:(NSURLConnection *) connection didReceiveResponse:(NSURLResponse *) response { //[webData setLength: 0]; } -(void) connection:(NSURLConnection *) connection didReceiveData:(NSData *) data { NSLog(@"recevied data %@",data); webData=[NSMutableData dataWithData:data]; [webData appendData:data]; } -(void) connection:(NSURLConnection *) connection didFailWithError:(NSError *) error { [webData release]; [connection release]; } -(void) connectionDidFinishLoading:(NSURLConnection *) connection { NSLog(@"Did Finish Loading done "); NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *pdfPath = [documentsDirectory stringByAppendingPathComponent:@"FileName.docx"]; [webData writeToFile:pdfPath atomically:YES]; [connection release]; }


Deberías mirar en ASIHTTPRequest. http://allseeing-i.com/ASIHTTPRequest/How-to-use

NSURL *url = [NSURL URLWithString:@"http://abcdef.xyz.com/Docs/NewFolder/myFile.docx"]; ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; [request setUsername:@"username"]; [request setPassword:@"password"]; [request setDidFinishSelector:@selector(requestDone:)]; [request setDidFailSelector:@selector(requestWentWrong:)]; - (void)requestDone:(ASIHTTPRequest *)request { NSString *response = [request responseString]; } - (void)requestWentWrong:(ASIHTTPRequest *)request { NSError *error = [request error]; }