2

NSDocumentDirectoryにarchived(.zip)ドキュメントへのローカルパスがあり、それをWebサーバーに保存したいと思います。

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

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';
    }
}
?>

それは機能していますが、より良い解決策を知っている場合は、ここに投稿してください。

于 2013-01-10T14:28:54.893 に答える