2

我在 NSDocumentDirectory 有一个归档(.zip)文档的本地路径,并希望将其保存在网络服务器上。

NSString *documentDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *archivePath = [documentDirectory stringByAppendingPathComponent:@"CreatedArchive.zip"];

我需要将该文件保存在服务器上,然后从服务器获取 .json 文档,更改它(写入保存的存档 url)并上传回来。我猜这是使用 ASIFormDataRequest 和 PHP 完成的。也许有人有工作代码可以在服务器上保存存档文件?

4

1 回答 1

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];

上传文件.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';
    }
}
?>

它正在工作,但如果您知道更好的解决方案,请在此处发布。

于 2013-01-10T14:28:54.893 回答