0

アプリに機能を追加して、約50kbの大きなファイルをWebサービスにPOSTできるようにしようとしていますが、ファイル自体は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 ポストを行うとき、通常、content-length自分で を設定することはありません。投稿データをkey=value&..フォームとしてエンコードし、[NSMutableURLRequest setHTTPBody:data]メソッドを使用してデータをNSMutableURLRequest. コンテンツの長さを設定するなど、残りのことはすべて行うと思います。私はHTTPプロトコルにあまり詳しくありませんが、おそらくcontent-length投稿データ全体の長さを表していると思いますが、ここcontent-lengthではキー値のデータ長の長さで値を設定します。

于 2012-12-19T03:55:35.403 に答える