在PHP中读取multipart / form-data POST数据

时间:2014-10-07 10:34:06

标签: php objective-c multipartform-data

我正在开发一个将数据发送到Web服务的应用程序。传输的数据使用https消息和POST方法。

在服务器端,在PHP中,我编写了从POST消息中获取数据的代码(只要数据是字符串),

使用如下技术。

$servercall = $_POST['servercall'];

我现在发现的问题是当我传输multipart / form-data时如何读取数据。

在objective-c中,我按如下方式构建http消息。

NSURL *url = [NSURL URLWithString:@"<ADDRESS>"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];

NSString *boundary = @"gc0p4Jq0M2Yt08jU534c0p";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
[request addValue:contentType forHTTPHeaderField:@"Content-Type"];

NSMutableData *body = [NSMutableData data];

[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"photo\"; filename=\"%@.jpg\"\r\n", @"teacherimage"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:Array.picture]];

[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"message\"\r\n\r\n%@", postSTRING] dataUsingEncoding:NSUTF8StringEncoding]];

[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

[request setHTTPBody:body];

如何在PHP中读取http消息中的photo和textstring?我甚至不知道谷歌的技术。

如果它有任何区别,所有数据都保存在SQL数据库中。

由于

1 个答案:

答案 0 :(得分:1)

我不知道Objective-C但php有$ _FILES数组,你可以通过表单找到文件。对不起,如果我的回答没有意义,我从未使用过objective-c而不打算使用它。尝试使用var_dump($_FILES)。你不需要定义/声明它,因为它是一个php超全局。