2011-05-20 11 views
6

Estoy haciendo un programa cliente-servidor para seleccionar un archivo desde una ubicación en un escritorio Mac y luego copiarlo en un simulador de iPhone. Luego, lo cargará al servidor utilizando el protocolo TCP.iPhone: seleccionando un archivo de una ubicación para cargar al servidor

¿Alguien puede sugerir cómo hacerlo o puede sugerir un sitio donde pueda aprender al respecto? Obtuve el siguiente código en Internet, ¿llevará a cabo la tarea requerida anterior?

if ([[NSFileManager defaultManager] isReadableFileAtPath:source]) 
    [[NSFileManager defaultManager] copyPath:source toPath:destination handler:nil]; 

[[NSWorkspace sharedWorkspace] performFileOperation:NSWorkspaceRecycleOperation source:foldername destination:@"" files:filenamesArray tag:&tag]; 

Respuesta

4

Tenga una mirada en ASIHTTPRequest: http://allseeing-i.com/ASIHTTPRequest/

A continuación se presenta la pieza de código que utilizo ASIHTTPRequest para cargar un archivo.

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
[request addPostValue:token forKey:@"token"]; 
[request setFile:recorderFilePath forKey:@"thefile"]; 
[request startSynchronous]; 

nota, el recorderFilePath variable es la ruta de acceso a un archivo de audio, este es un archivo que he creado en el directorio documento de aplicación, añade la información siguiente código a su archivo de cabecera, le ayudará a conseguir su directorio de documentos.

#define DOCUMENTS_FOLDER [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] 
+0

@ dongsheng En el lugar de la url puedo poner la dirección de mi servidor. –

+0

Sí, la url en [ASIFormDataRequest requestWithURL: url] debería ser su url del servidor. –

+3

No olvide leer la documentación de ASIHTTPRequest, startSynchronous bloqueará su hilo y probablemente no sea lo que usted desea. Entonces, el usuario startAsynchronous y un delegado. –

Cuestiones relacionadas