2017-02-01 3 views
0

Я не могу прочитать параметры в php с загрузкой мультиформатных данных. Я использую Alamofire 4 и быстры 3. Ниже мой код:Я не могу получить параметры для передачи с изображением в Alamofire 4.0 multipartform upload

var parameters:[String: String] 
       parameters = [ 
      "ID": self.fieldNote.ID, 
      "createdBy": self.fieldNote.createdBy, 
      "workOrderID": self.fieldNote.workOrderID, 
      "customerID": self.fieldNote.customerID, 
      "note"  : self.fieldNote.note, 
      "status":"0", 
      "imageEdit":String(self.imageEdit) 
     ] 

    print("parameters = \(parameters)") 

    Alamofire.upload(
     multipartFormData: { multipartFormData in 


       for (key, value) in parameters { 
        multipartFormData.append(value.data(using: .utf8)!, withName: key) 
       } 
       multipartFormData.append(UIImageJPEGRepresentation(self.imageView.image!, 1)!, withName: "pic", fileName: "user.jpg", mimeType: "image/jpeg") 

    }, 
     to: "http://www.___.com/cp/app/functions/upload.php", 
     encodingCompletion: { encodingResult in 
      switch encodingResult { 
      case .success(let upload, _, _): 
       upload.responseJSON { response in 
        debugPrint("SUCCESS RESPONSE: \(response)") 
       } 
       upload.responseString { response in 
        debugPrint("SUCCESS RESPONSE: \(response)") 
       } 
      case .failure(let encodingError): 
       print("ERROR RESPONSE: \(encodingError)") 

      } 
     } 
    ) 

PHP:

foreach ($_FILES as $key => $value) { 
     echo "<tr>"; 
     echo "<td>"; 
     echo '$key = ' . $key; 
     echo "</td>"; 
     echo "<td>"; 
     echo '$value = ' . $value; 
     echo "</td>"; 
     echo "</tr>"; 
     } 

Просто пытаюсь повторить переданные параметры, прежде чем перейти с PHP работы. Любая помощь будет замечательной. Thanks

ответ

0

Я выяснил рабочий синтаксис.

var parameters:[String:String] 
     parameters = [ 
      "ID": self.fieldNote.ID, 
      "createdBy": self.fieldNote.createdBy, 
      "workOrderID": self.fieldNote.workOrderID, 
      "customerID": self.fieldNote.customerID, 
      "note"  : self.fieldNote.note, 
      "status":"0", 
      "imageEdit":String(self.imageEdit) 
     ] 


    print("parameters = \(parameters)") 

    let URL = try! URLRequest(url: "http://www.___.com/cp/app/functions/upload.php", method: .post, headers: nil) 

    Alamofire.upload(multipartFormData: { (multipartFormData) in 
     print("alamofire upload") 

     if(self.imagePicked == true || self.imageEdit == true){ 

      multipartFormData.append(UIImageJPEGRepresentation(self.imageView.image!, 1)!, withName: "pic", fileName: "swift_file.jpeg", mimeType: "image/jpg") 
     } 

     for (key, value) in parameters { 
      multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key) 
     } 
    }, with: URL, encodingCompletion: { (result) in 

     print("result = \(result)") 
     switch result { 
     case .success(let upload, _, _): 

      upload.uploadProgress(closure: { (Progress) in 
       print("Upload Progress: \(Progress.fractionCompleted)") 
      }) 

      upload.responseJSON { response in 
       print(response.request ?? "") // original URL request 
       print(response.response ?? "") // URL response 
       print(response.data ?? "")  // server data 
       print(response.result) // result of response serialization 
       if let JSON = response.result.value { 
        print("JSON: \(JSON)") 
       } 
      } 

      upload.responseString { response in 
       debugPrint("SUCCESS RESPONSE: \(response)") 
      } 

     case .failure(let encodingError): 
      print(encodingError) 
         } 
    }) 

PHP:

$ID = intval($_POST['ID']); 
    $note = $db->real_escape_string($_POST['note']); 
    $customerID = intval($_POST['customerID']); 
    $woID = intval($_POST['workOrderID']); 
    $woItemID = intval($_POST['workOrderItemID']); 
    $createdBy = intval($_POST['createdBy']); 
    $status = intval($_POST['status']); 

    $imageEdit = boolval($_POST['imageEdit']); 

    // check $_FILES['pic'] not empty 
    if(!isset($_FILES['pic']) || !is_uploaded_file($_FILES['pic']['tmp_name'])) 
    { 
     $hasImg = false; 
    } else { 
     $hasImg = true; 
    } 
Смежные вопросы