Загрузить plist на удаленный сервер с iPhone - PullRequest
0 голосов
/ 17 августа 2011

можно ли загрузить весь файл plist на удаленный сервер или программно выпустить коробку с iPhone?

Любая полезная информация будет полезна.Если у вас есть коды, пожалуйста, поделитесь спасибо!:)

РЕДАКТИРОВАТЬ:

В настоящее время я использую эти коды, я получил его от Загрузить файл на FTP-сервер на iPhone .Но у меня есть ошибки, мой список находится в директории документа.

Функция

- (BOOL) uploadData:(NSData *)plistData filename:(NSString *)filename {
NSString *urlString = @"http://site.net/upload.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:plistData]];
[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];
NSLog(@"Uploaded: %@", returnString);
return ([returnString isEqualToString:@"OK"]);

}

Вызов метода

[self uploadData:[NSKeyedArchiver archivedDataWithRootObject:dbArray] filename:@"data.plist"];

PHP-файл

    <?php
$uploaddir = '';
$file = basename($_FILES['userfile']['name']);
$uploadfile = $uploaddir . $file;

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "OK";
} else {
    echo "ERROR";
}

?>

Просто продолжает выдавать «ОШИБКА» ...

1 Ответ

0 голосов
/ 17 августа 2011

Для обычного сервера вам просто нужно написать скрипт (например, с использованием PHP), который будет принимать запросы POST.Затем вы можете загрузить свой файл, используя NSURLConnection.

Как обычно, официальная документация охватывает вас.Что касается сценария на стороне сервера, это зависит от того, какой язык / инструментарий вы выберете.PHP move_uploaded_file() - это только одна из возможностей.

...