【问题标题】:How to send and save Archived file to Server with Objective-C如何使用 Objective-C 将存档文件发送和保存到服务器
【发布时间】:2012-12-22 07:20:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: objective-c file webserver save archive


    【解决方案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';
        }
    }
    ?>
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      • 2013-04-24
      相关资源
      最近更新 更多