Подтвердить что ты не робот

Загрузить файл на FTP-сервер на iPhone

Я хотел бы реализовать логику, которая загружает файл на FTP-сервер.

Я новичок в разработке iPhone, поэтому хочу понять предпочтительный подход. После просмотра доступного API для этой задачи мне удалось найти только код, который использует CFNetwork (который выглядит не на основе Objective C).

Существует также система загрузки URL, которая использует NSURL и т.д., которые основаны на Objective C.

Итак, мой вопрос: можно ли использовать систему загрузки URL для реализации загрузки файлов на FTP-сервер?

Спасибо.

4b9b3361

Ответ 1

Я использую страницу PHP для публикации файла и PHP обрабатывает загрузку....

Этот код используется для загрузки фотографии, но может быть адаптирован для работы с любым файлом.

Код 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";
}

?>

Код 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"]);
}

Вызов метода:

[self uploadImage:UIImageJPEGRepresentation(imageView.image, 1.0) filename:imageName];