2016-03-30 15 views
0

http üzerinden base64 resim içeriği YAYINLAYAMIYOR. Bu yüzden hızlıca HTTP üzerinden bir php sunucusuna bazı içerik göndermeye çalışıyorum. Http etiketi gövdesine bir resim base64 içeriği ekleyene kadar her şey iyi çalışıyor. Php backend max post boyutunu kontrol ettim, değildi. Hızlı bir şekilde oluşturulmuş görüntü içeriğini kopyalayıp yapıştırdım ve kromda yapıştırdım ve görüntü oradaydı, dolayısıyla görüntü hatalı değil. // let seans = NSURLSession.sharedSession();Ben tüm diğer konuları okudum ama benim sorunum bu bir karışımı olan PHP sunucusuna

Bu benim let url = NSURL (: "example.com/endpoint https" string) ne ait örnek kod Ben base64 dize içeriği ile satırın başındaki zaman

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() 

Yani, gerileme çağrısına gidin ve "hatası" yazdırır. Neden http yoluyla gönderilmediğine dair bir fikrim yok. Uymak zorunda olduğum bir kural var mı? Büyük bir dize eklediğimde belirli bir http üstbilgisi ayarlamalı mıyım? Burada bir şey mi eksik? Teşekkürler

cevap

0

Evet, aptal bir Apache ayarları hatasıydı. Daha önce max_post_size değiştirdim ve hiçbir şeyim yok. Ancak bu sefer maksimum istek vücut parametresini değiştirdim ve sonunda sunucuya veri gönderebiliyorum.

İlgili konular