2015-04-17 4 views
8

Come posso ottenere i valori dei parametri da Swift, il caricamento del file è già funzionante, ho provato $ _GET ["familyId"], ma non ha funzionato?Come ottenere i parametri da AFNETWORKING POST

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

non hai aggiunto quell'ID all'URL. dovresti cercare in '$ _POST ['familyId']' –

+0

@MarcB non capisco? guarda dove? – MasterWizard

+0

Aspetta, fammi capire, stai usando il metodo HTTP POST, corretto? Perché dovresti provare a utilizzare GET e non usare ancora il POST? – Jeffrey

risposta

7

Il problema che si sta affrontando è che stai cercando il posto sbagliato. Come hai detto, stai usando il metodo POST di AFNetworking per POST i dati. Enfasi sul POST. GET e POST sono due cose completamente diverse. GET viene utilizzato per recuperare i valori memorizzati nell'URL, ad esempio www.example.com/example-get.php?key1=value1&key2=value2. Dovresti accedere ai diversi valori in PHP facendo $_GET['key1']. POST è qualcosa di diverso. Questo viene inviato insieme al corpo del messaggio HTTP e NON può essere visualizzato nella cronologia di navigazione o nell'URL. Sarai in grado di accedere ai tuoi dati utilizzando $_POST['familyId']. Ti suggerisco di leggerlo un po 'di più, quindi fornirò this per iniziare.

Buona fortuna a voi.

1

Il tuo problema principale è che le variabili sono nello $_POST e stai cercando il numero $_GET.

Vedo dal codice che i dati vengono inviati nel corpo del post della richiesta. Che è fondamentalmente ciò che ha detto jkaufman nella sua risposta.

Prova qualche variante:

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

Si possono trovare questi collegamenti informativi (come avete chiesto credibile e/o fonti ufficiali).