-2

現在、iOS アプリから Web サーバー上の PHP スクリプトに JSON データを送信しています。iOSでデータを送信するために使用しているコードは次のとおりです。

NSData* jsonData = [NSJSONSerialization dataWithJSONObject:newDatasetInfo options:kNilOptions error:&error];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL: [NSURL URLWithString:@"http://www.myserver.com/upload.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setHTTPBody:jsonData];

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];

そしてPHP側では:

$handle = fopen('php://input','r');
$jsonInput = fgets($handle);
// Decoding JSON into an Array
$decoded = json_decode($jsonInput,true);

iOS コードと PHP コードの両方を変更して、iOS アプリから PHP コードにファイルをアップロードできるようにするにはどうすればよいですか? PHP コードはローカルでディスクに書き込むために使用します。ファイルは音声ファイルになります。

ありがとう!

4

1 に答える 1

0

Obj-C についてはよくわかりませんが、基本的にはmultipart/form-dataコンテナーを使用する必要があります。

Content-Type: multipart/form-data; boundary="xx"

--xx
Content-Type: audio/mpeg
Content-Length: 12345
Content-Disposition: attachment; name="file"; filename="music.mp3"

<contents of mp3>

--xx
Content-Disposition: form-data; name="data"
Content-Type: application/json
Content-Length: 123

<contents of json data>

--xx--

PHP を使用すると、次を使用してデータにアクセスできます。

$_FILES['file'] // the uploaded file

$_POST['data'] // the json data
于 2012-12-31T01:55:50.917 に答える