Как отправить и сохранить Архивированный файл на сервер с Objective-C
У меня есть локальный путь к archived(.zip) документ в NSDocumentDirectory и хотите сохранить его на веб-сервере.
NSString *documentDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *archivePath = [documentDirectory stringByAppendingPathComponent:@"CreatedArchive.zip"];
Мне нужно сохранить этот файл на сервере , а затем получить .json документ с сервера, измените его (напишите туда сохраненный url архива) и загрузите обратно. Я предполагаю, что это делается с помощью ASIFormDataRequest и PHP. Может быть, у кого-то есть рабочий код для сохранения архивированных файлов на сервере?
1 ответ:
Я нашел как это сделать. Вы можете использовать asi-http-request для загрузки любого файла.
Используйте этот код:
// Upload archive NSString *documentDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; NSString *archivePath = [documentDirectory stringByAppendingPathComponent:@"CreatedArchive.zip"]; ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"http://your.url/uploadfile.php"]]; [request setPostValue:@"uploadfilefromapp" forKey:@"action"]; [request setFile:archivePath forKey:@"arch"]; [networkQueue addOperation:request]; [networkQueue go];
Uploadfile.php
<?php if(isset($_POST['action']) && isset($_FILES['arch'])) { if($_POST['action']==='uploadfilefromapp') { $newfile = basename($_FILES['arch']['name']); if(move_uploaded_file($_FILES['arch']['tmp_name'], $newfile)) { echo 'ok!'; } else { echo 'fail!'; } } else { echo 'Go away cheater'; } } ?>
Это работает, но если вы знаете лучшее решение, пожалуйста, напишите здесь.