2015-04-17 24 views
8

Swift'den parametre değerlerini nasıl alabilirim, dosya yükleme zaten çalışıyor, $ _GET ["familyId"] denedim, ancak çalışmadı?AFNETWORKING POST parametresi nasıl alınır?

Swift:

let manager = AFHTTPRequestOperationManager() 
    let url = "http://localhost/test/upload.php" 
    var fileURL = NSURL.fileURLWithPath(NSBundle.mainBundle().pathForResource("test_1", ofType: "mov")!) 
    var params = [ 
     "familyId":locationd, 
     "contentBody" : "Some body content for the test application", 
     "name" : "the name/title", 
     "typeOfContent":"photo" 
    ] 

    manager.POST(url, parameters: params, 
     constructingBodyWithBlock: { (data: AFMultipartFormData!) in 
      println("") 
      var res = data.appendPartWithFileURL(fileURL, name: "fileToUpload", error: nil) 
      println("was file added properly to the body? \(res)") 
     }, 
     success: { (operation: AFHTTPRequestOperation!, responseObject: AnyObject!) in 
      println("Yes thies was a success") 
     }, 
     failure: { (operation: AFHTTPRequestOperation!, error: NSError!) in 
      println("We got an error here.. \(error.localizedDescription)") 
    }) 

PHP:

$target_dir = "uploads/"; 
$target_dir = $target_dir . basename($_FILES["fileToUpload"]["name"]); 

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_dir)) { 
echo json_encode([ 
    $user_info; 
    "Message" => "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded.", 
    "Status" => "OK", 
    ]); 
+0

Bu kimliği URL'ye eklemediniz. '$ _POST [' familyId '] ' –

+0

@MarcB’de anlamıyorum. nereye bak – MasterWizard

+0

Bekleyin, bunu doğru yapalım, HTTP yöntemi POST kullanıyorsunuz, değil mi? Neden GET'i kullanmaya ve neden bir kez daha POST kullanmıyorsunuz? – Jeffrey

cevap

7

Eğer yanlış yere bakıyoruz edilir karşılaştığınız sorunu. Dediğiniz gibi, verileri POST yapmak için AFNetworking'in POST yöntemini kullanıyorsunuz. POST üzerinde vurgu. GET ve POST iki tamamen farklı şeyler. GET, www.example.com/example-get.php?key1=value1&key2=value2 gibi URL'de depolanan değerleri almak için kullanılır. PHP'deki farklı değerlere $_GET['key1'] yaparak erişebilirsiniz. POST farklı bir şeydir. Bu, HTTP mesaj gövdesiyle birlikte gönderilir ve tarama geçmişinde veya URL'de görülemez. Verilerinize $_POST['familyId'] kullanarak erişebileceksiniz. Biraz daha okumayı öneririm, bu yüzden başlamak için this sağlayacağım.

Size iyi şanslar.

1

Ana sorun, değişkenlerin $_POST içeriğidir ve $_GET içinde.

Koddan, verilerin postalama isteğinin gövdesinde gönderildiğini görebiliyorum. Esasen, jkaufman'ın cevabında söylediği şey. (Eğer güvenilir ve/veya resmi kaynaklardan istediler gibi) Sen bilgilendirici Bu bağlantıları bulabilirsiniz

<?php 
    $FamilyID = $_POST['familyId']; 
    // ... do stuff with it ... 
?> 

:

bir varyasyonunu deneyin.

İlgili konular