2017-07-14 148 views
0

到PHP我是一个初学者,我不知道如何去使用alamofire提交我的形象的阵列到我的数据库。下面是我的代码时,它的形式加载上传与其他参数图像的阵列在Xcode

override func viewDidLoad() 
     { 
      super.viewDidLoad() 

      // adding page image into the image square 
      for i in 1...3 
      { 
       var imgView : UIImageView! 
       imgView = UIImageView(frame: CGRect(x: 0, y: 0, width: 150, height: 150)) 
       imgView.contentMode = .scaleAspectFit 
       imgView.tag = i 
       imgView.image = UIImage(named: "page.png") 
       imageArray.add(imgView) 
      } 

      videoView.isHidden = true 
      photoView.type = iCarouselType.coverFlow2 
      photoView.reloadData() 
     } 

用户选择/拍照后图像将取代page.png ..一切工作正常。下面是替换代码

public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) 
    { 
     let chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage 

     self.selectedImageView.image = chosenImage 

     imageArray.replaceObject(at: self.selectedImageView.tag-1, with: self.selectedImageView) 

     photoView.reloadData() 

     dismiss(animated:true, completion: nil) 
    } 

至于提交的一部分,我有了解阵列和更重要的是提交一个数组PHP /数据库的麻烦。请帮助我,因为我不知道如何从这里继续。我需要提交图像数组(最多3个图像)以及表单中的其他参数。

@IBAction func submitAction(_ sender: Any) 
    { 

      let URL_Submit = "http://localhost/form.php" 
      let parameters: Parameters=[ 

       "block":blockText.text!, 
       "category":catText.text!, 
       "description":descText.text!] 


      Alamofire.request(URL_Submit, method: .post, parameters: parameters).responseJSON 
       { 

        response in 
        //printing response 
        print(response) 

        let alertController = UIAlertController(title: "Success!", message: 
         "Your feedback has been submitted", preferredStyle: UIAlertControllerStyle.alert) 

        alertController.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.default,handler: nil)) 

        self.present(alertController, animated: true, completion: nil) 

       } 

      } 

我删除了我的尝试上载图像在我submitAction bc它不工作。请帮助我,因为我现在还没有任何线索可以继续。感谢您的时间

+0

你能告诉我,我的答案是否解决了你的问题? –

回答

0

你必须使用多上传文件上传到你的服务器,像这里是用alamofire上传4张图片的例子。你可以让一个数组,并上传多张图片,以及:

func uploadImagesAndData(params:[String : AnyObject]?,image1: UIImage,image2: UIImage,image3: UIImage,image4: UIImage,success:@escaping (JSON) -> Void, failure:@escaping (Error) -> Void) { 

let imageData1 = UIImageJPEGRepresentation(image1, 0.5)! 
let imageData2 = UIImageJPEGRepresentation(image2, 0.5)! 

let imageData3 = UIImageJPEGRepresentation(image3, 0.5)! 

let imageData4 = UIImageJPEGRepresentation(image4, 0.5)! 


Alamofire.upload(multipartFormData: { multipartFormData in 

    for (key, value) in params! { 
     if let data = value.data(using: String.Encoding.utf8.rawValue) { 
      multipartFormData.append(data, withName: key) 
     } 
    } 

    //### Here "file" is the name of your image parameter ###// 

    multipartFormData.append(imageData1, withName: "file", fileName: "image.jpg", mimeType: "image/jpeg") 
    multipartFormData.append(imageData2, withName: "file", fileName: "image.jpg", mimeType: "image/jpeg") 
    multipartFormData.append(imageData3, withName: "file", fileName: "image.jpg", mimeType: "image/jpeg") 
    multipartFormData.append(imageData4, withName: "file", fileName: "image.jpg", mimeType: "image/jpeg") 

}, 
       to: K_BASEURL + K_API_LOGINDATA, encodingCompletion: { encodingResult in 
        switch encodingResult { 
        case .success(let upload, _, _): 
         upload 
          .validate() 
          .responseJSON { response in 
           switch response.result { 
           case .success(let value): 
            print("responseObject: \(value)") 


            let resp = JSON(response.result) 
            success(resp) 
           case .failure(let responseError): 
            print("responseError: \(responseError)") 
            failure(responseError) 
           } 
         } 
        case .failure(let encodingError): 
         print("encodingError: \(encodingError)") 
        } 
}) 
} 

在你的情况,你可以遍历您的array。我的后台有thumb[]检查,所以我将它命名为"thumb[]"。你可以有不同的名字:

for thumbImg in thumbImagesArray { 
      multipartFormData.append(UIImageJPEGRepresentation(thumbImg as! UIImage, 1)!, withName: "thumbs[]", fileName: "thumbs.jpeg", mimeType: "image/jpeg") 
     } 
+0

我没有得到你,你可以请更新代码,所有的错误使用矿代码后,你得到了你的问题? –