Ios 正在使用ASIHTTPRequest将.caf发送到服务器
我正在使用Avassetrader创建一个.caf文件,可以在我的计算机上本地播放。但是,当我尝试将.caf上载到服务器时,无法再读取上载的文件。这是我的密码:Ios 正在使用ASIHTTPRequest将.caf发送到服务器,ios,objective-c,core-audio,asihttprequest,Ios,Objective C,Core Audio,Asihttprequest,我正在使用Avassetrader创建一个.caf文件,可以在我的计算机上本地播放。但是,当我尝试将.caf上载到服务器时,无法再读取上载的文件。这是我的密码: NSLog(@"Posting to server"); NSURL *serverURL = [NSURL URLWithString:serverString]; ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:serverURL]; [request
NSLog(@"Posting to server");
NSURL *serverURL = [NSURL URLWithString:serverString];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:serverURL];
[request setRequestMethod:@"POST"];
[request setData:songData
withFileName:@"exported.caf"
andContentType:@"audio/x-caf"
forKey:@"musicfile"];
[request setDelegate:self];
[request startAsynchronous];
有趣的是,当我执行以下操作时,生成的文件在我的计算机上工作:
NSString *applicationDocumentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *storePath = [applicationDocumentsDir stringByAppendingPathComponent:@"test.caf"];
[songData writeToFile:storePath atomically:NO];
我是否必须在musicData中附加某种类型的标题才能正确格式化.caf?以下是一些故障排除说明,以确定问题:
.caf
文件的适当解码器的可能性)。您可以通过尝试播放原创歌曲轻松解决此问题(即一个不是您自己创建的,经证明有效的).caf
文件在远程服务器上这听起来像是一个严重的问题。上传的文件实际上是在服务器上保存的吗?而且,我不会把SturpPATH发送到服务器,而是让服务器决定在哪里存储。否则有人可以使用HTTP请求改写系统文件。BTW,ASIHTTPRequest不再被支持/开发。考虑替代,如AfNETWEB。根据hex fiend,我的程序似乎在将文件名附加到.caf文件的开头。当我删除前22个字节时,它可以工作,但我想知道是否有更好的方法来保存文件,而不是这样做?很明显,您不希望错误地将文件名附加到数据后再取出。这是误导g和低效。我怀疑这与此方法有关
[请求设置数据:songData,文件名:@“exported.caf”和内容类型:@“audio/x-caf”forKey:@“musicfile”]
但那只是一个猜测..仔细研究一下参数等,我相信你会找到答案的。不管怎样,你都能找到答案!我能得到正确的答案吗?:D