iOS无法将本地wav文件上传到我的服务器

问题描述:

我正在制作一个应用程序,用户可以使用该应用程序录制声音并将其发送到我的服务器。第一部分完美地工作。我可以录制和播放声音。然而问题是,当我尝试上传这个录制结果的wav文件到我的服务器时,它不会接受任何超过2分钟的内容,并且几秒钟(约2 MB)的小文件被发送并且正确处理。任何大于此的结果都会导致发送请求但不附加文件,或附加文件,但服务器无法读取它。第一个对我来说似乎更可能。我的Objective-C代码如下:iOS无法将本地wav文件上传到我的服务器

Objective-C代码

NSString *theUrl = @"http://www.myserver.nl"; 
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:theUrl]]; 

[request setFile:[soundFileURL path] forKey:@"mainfile"]; //The file gets added 
[request startSynchronous]; //Request is being sent. 

任何想法或解决方案将不胜感激!

PHP的上传限制是由几个设置所决定:

upload_max_filesize
memory_limit
post_max_size

还有web服务器的限制,如Apache的LimitRequestBody可以长期PHP的这之前一命呜呼

+0

工作就像一个魅力!谢谢! – Manuel

您可能想要使用异步传输。然后,您可以将某些日志记录或UIProgressBar挂钩到ASIFormDataRequest的progressDelegate属性,以便ASI可以报告其上传进度,以便您可以查看它是否从应用程序端发出。

但是,我的怀疑是,您正在与服务器上的“最大上传大小”配置发生冲突。你是否将此发送给你写的代码?我主要在服务器端使用PHP,并且我知道超出了php.ini文件中指定的特定大小,它只是barfs。

+1

最大上传大小固定它,愚蠢的我没有想到...对不起,跛脚的问题,并感谢您的快速回复! :) – Manuel

+0

实际上Marc B给出的回复是'更正确',因为post_max_size和memory_limit必须增加。我会给他最好的答案:) – Manuel

+0

@ dragon112 * Fiiiiiine *! ;-)我仍然推荐异步连接,不仅因为你可以监视它们的进展。 –