-2

我目前正在将我的 iOS 应用程序中的 JSON 数据发送到我的 Web 服务器上的 PHP 脚本。这是我在 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 回答