0

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

Web 服务当前旨在检查 $_POST['html'] 变量并将其写入文件。

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

谢谢亚伦

   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];
4

2 回答 2

0

我认为这是因为您的服务器设置了发布限制。请检查服务器端有关发布数据限制的设置。

于 2012-10-18T10:17:27.907 回答
0

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

于 2012-12-19T03:55:35.403 回答