NSURLConnection无法http发布大文件

我们正在尝试在我们的应用程序中添加function,以允许它向我们的Web服务发送一个大约50kb的大文件,文件本身是一个HTML模板,但是下面的代码我们发现数据似乎被切断当networking服务保存时。

Web服务目前被devise为检查$ _POST ['html']variables并将其写入文件。

有没有更好的方式来做到这一点,有没有人有任何想法,为什么上传不完整?

谢谢Aaron

NSString *myText; NSString *filePath = [[NSBundle mainBundle] pathForResource:@"template" ofType:@"htm"]; if (filePath) { myText = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; } NSURL *URL = [NSURL URLWithString:@"http://mywebsiteurl.com/receiveData.php"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; request.HTTPMethod = @"POST"; NSString *params = [NSString stringWithFormat:@"html=%@", myText]; NSData *data = [params dataUsingEncoding:NSASCIIStringEncoding]; [request addValue:@"8bit" forHTTPHeaderField:@"Content-Transfer-Encoding"]; [request addValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; [request addValue:[NSString stringWithFormat:@"%i", [data length]] forHTTPHeaderField:@"Content-Length"]; [NSURLConnection connectionWithRequest:[request autorelease] delegate:self]; 

我认为这是因为你的服务器设置了后期限制。检查你的服务器端的设置关于后期数据的限制。

当我重新检查这个问题时,我想也许我find了什么问题。 当我做HTTP POST时,我通常不会自己设置content-length 。 我只是将我的发布数据编码为key=value&..表单,并使用[NSMutableURLRequest setHTTPBody:data]方法将数据添加到NSMutableURLRequest 。 我认为它会为你做剩下的工作,包括为你设置内容长度。 即使我对HTTP协议不是很熟悉,但是我想也许content-length代表了整个发布数据的长度,但是在这里你可以用关键值数据长度来设置content-length值。