php - 通过 NSURLRequest 将音频文件发布到 Web 服务器并将其取回的问题

标签 php objective-c audio nsurlrequest

我正在编写一个应用程序,该应用程序需要将 mp3 或任何其他常见音频格式的音频文件发送到服务器。我正在使用 NSURLConnection建立这种联系的实例。我正在使用 post 方法,因为接收信息的文件是 .php。在同一个连接中,我需要发送其他主要是字符串和整数的参数。我面临的问题实际上是发送音频文件并在服务器中接收它。我正在使用下一个代码来建立我的连接:

NSMutableURLRequest *localRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"whateverphpfile"]];
[localRequest setHTTPMethod:@"POST"];
[self setRequest:localRequest];
[localRequest release];

NSMutableData *body = [[NSMutableData alloc] init];

NSString *testerSTR = [NSString stringWithFormat:@"file=%@", [[NSBundle mainBundle] pathForResource:@"header" ofType:@"png"]];
[body setData:[testerSTR dataUsingEncoding:NSUTF8StringEncoding]];

//_request is of type NSMutableURLRequest
[_request setHTTPBody:body];
//[_request setValue:@"multipart/form-data" forHTTPHeaderField:@"enctype"];
[_request setValue:@"multipart/form-data" forHTTPHeaderField:@"content-type"];

NSLog(@"the body sent is: %@", [[NSString alloc] initWithData:body encoding:NSUTF8StringEncoding]);

_connection = [[NSURLConnection alloc] initWithRequest:_request delegate:self];

if (_connection)
{
    [self setWebData:[NSMutableData data]];
}
else
{
    NSLog(@"theConnection is NULL");
}

检查数据并将其返回到设备时的问题是它是一个像 <564024S D451475 DS5752... ...552D4S5> 这样的字符串。 .我应该怎么做才能接收实际的音频文件,或者如何将大字符串转换为原生 iOS 类可读的音频文件?

最佳答案

您需要以 multipart/form-data 格式发送数据。该主题的第二个答案的代码应该可以做到这一点:NSURLConnection to upload file asynchonrously?

您也可以使用 ASIHTTPRequest 库,它可以做到这一点。

关于php - 通过 NSURLRequest 将音频文件发布到 Web 服务器并将其取回的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11112258/

相关文章:

ios - NSXMLParserDelegate objective-c

iphone - NSArray 和 NSMutableArray 的 Objective-c 内部机制

php - 使用 zend 框架创建动态侧边栏的最佳实践

php - 使用 PHP 在 mySQL 中创建一个表

PHP 包含 JS 库

iphone - 重现 iPhone SMS 应用程序用户界面的最简单方法?

Java 在另一个音频上播放相同的音频

audio - 使用 FFMPEG 将 ID 变成独特的声音

android - 如何防止多个通知上的声音重叠

php - 根据存储的 mysql 值选择 Select Option