2016-03-30 10 views
0

他のすべてのスレッドを読み込んでいますが、私の問題はそれらを組み合わせています。だから私は迅速にHTTPを介してPHPサーバーにいくつかのコンテンツを送信しようとしている。 httpタグの本体にイメージbase64のコンテンツを追加するまでは、すべてうまく動作します。私はphpのバックエンドの最大ポストサイズをチェックして、それをしませんでした。迅速に生成された画像コンテンツを貼り付けてクロムに貼り付け、画像があったので、画像に問題はありません。 //ましょうセッション= NSURLSession.sharedSession();HTTP経由でPOSTベース64の画像コンテンツをPHPサーバに送信できません

は、これは私が のlet URL = NSURL(:: "example.com/endpoint https" の文字列)を持っているもののサンプルコードです私はbase64文字列の内容の行のコメントを外したときに

let request = NSMutableURLRequest(URL: url!) 
    request.HTTPMethod = "POST" 
    request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringCacheData 

    var body = "csrf_token=" + (token.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())! as String) 
    body += "&email=" + (email?.text)! 
    body += "&first_name=" + (firstName?.text)! 
    body += "&last_name=" + (lastName?.text)! 
    body += "&password=" + password!.text! 
    //body += "&image_content=" + imageContent 
    body += "&confirm_password=" + confirmPassword!.text! 
    body += "&provider=" + provider 
    body += "&pictureURL=" + pictureURL 

    request.HTTPBody = body.dataUsingEncoding(NSUTF8StringEncoding) 
    request.addValue("https:example.com/", forHTTPHeaderField: "origin") 
    request.addValue("https:example.com/endpoint", forHTTPHeaderField: "referrer") 

    let task = session.dataTaskWithRequest(request) { 
     (
     let data, let response, let error) in 
     guard let _:NSData = data, let _:NSURLResponse = response where error == nil else { 
      print("error") 
      print(data) 
      print(response) 
      return; 
     } 
     let dataString = NSString(data :data!, encoding: NSUTF8StringEncoding); 
     print(dataString) 

     if ((response as! NSHTTPURLResponse).statusCode == 200) { 
      dispatch_async(dispatch_get_main_queue(), { 
       self.performSegueWithIdentifier("loginAfterSignup", sender: nil) 
      }) 
     } 
     else { 
      dispatch_async(dispatch_get_main_queue(), { 
       print((response as! NSHTTPURLResponse).statusCode) 
       print("error code, could not sign up and login") 
      }) 
     } 
    } 
    task.resume() 

だから、私は時代遅れの呼び出しに移動し、それが「エラー」を表示します。 httpを介して送信されていない理由はわかりません。私が従わなければならない規則はありますか?一度大きな文字列を追加すると、特定のhttpヘッダーを設定する必要がありますか?私はここに何かを逃していますか ありがとう

答えて

0

うん、それは愚かなApache設定のエラーでした。私は以前にmax_post_sizeを変更して何も持っていません。しかし、今回はmax request bodyパラメータを変更して、最終的にサーバーにデータを送信することができました。

関連する問題