Subir archivo a servidor FTP en iPhone
upload (1)
Me gustaría implementar la lógica que carga el archivo al servidor FTP.
Soy nuevo en el desarrollo de iPhone, por lo que quiero averiguar el enfoque preferido. Después de explorar la API disponible para esta tarea, logré encontrar solo el código que usa CFNetwork (que parece no estar basado en Objective C).
También hay un sistema de carga de URL que utiliza NSURL, etc. que se basan en Objective C.
Entonces, mi pregunta: ¿Es posible usar el sistema de carga de URL para implementar la carga de archivos al servidor FTP?
Gracias.
Uso una página PHP para publicar un archivo y hacer que PHP maneje la carga ...
Este código se usa para cargar una foto, pero se puede adaptar para trabajar con cualquier archivo.
Código PHP:
<?php
$uploaddir = ''photos/'';
$file = basename($_FILES[''userfile''][''name'']);
$uploadfile = $uploaddir . $file;
if (move_uploaded_file($_FILES[''userfile''][''tmp_name''], $uploadfile)) {
echo "OK";
} else {
echo "ERROR";
}
?>
Código de iPhone:
- (BOOL)uploadImage:(NSData *)imageData filename:(NSString *)filename{
NSString *urlString = @"http://www.yourdomainName.com/yourPHPPage.php";
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"/r/n--%@/r/n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:[NSString stringWithFormat:@"Content-Disposition: form-data; name=/"userfile/"; filename=/"%@/"/r/n",filename]] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream/r/n/r/n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithFormat:@"/r/n--%@--/r/n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding] autorelease];
return ([returnString isEqualToString:@"OK"]);
}
Método de llamada:
[self uploadImage:UIImageJPEGRepresentation(imageView.image, 1.0) filename:imageName];