簡體   English   中英

從圖庫中拍攝照片並將圖像上傳到服務器swift 4

[英]take photo from library and upload image to server swift 4

我是新手,嘗試過許多博客文章和github,以從庫中獲取圖像並將其上傳到服務器(php服務器端)。 您能否編寫從照片庫中獲取照片並將其上傳到使用alamofire和其他任何方法的服務器的代碼?

以下是我試圖從照相館上傳照片的代碼

 @IBAction func upload(_ sender: Any) {
        let picker = UIImagePickerController()
        picker.delegate = self
        picker.sourceType = UIImagePickerControllerSourceType.photoLibrary
        picker.allowsEditing = false
        self.present(picker, animated: true) {

        }

    }
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

     if let originalImage = info[UIImagePickerControllerOriginalImage] as? UIImage {

            imageView.image = originalImage
        let image = UIImage.init(named: "\(originalImage)")
        let imgData = UIImageJPEGRepresentation(image!, 0.2)!
        let parameters = ["user":"Sol", "password":"secret1234"]


        Alamofire.upload(multipartFormData: { multipartFormData in
            multipartFormData.append(imgData, withName: "fileset",fileName: "file.jpg", mimeType: "image/jpg")
            for (key, value) in parameters {
                multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
            } //Optional for extra parameters
        },
                         to:"website")
        { (result) in
            switch result {
            case .success(let upload, _, _):

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

                upload.responseJSON { response in
                    print(response.result.value)
                }

            case .failure(let encodingError):
                print(encodingError)
            }
        }
        }
 self.dismiss(animated: true, completion: nil)
    }
}
@IBAction func upload(_ sender: Any) {
        let picker = UIImagePickerController()
        picker.delegate = self
        picker.sourceType = UIImagePickerControllerSourceType.photoLibrary
        picker.allowsEditing = false
        self.present(picker, animated: true) {

        }

    }
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

        if let originalImage = info[UIImagePickerControllerOriginalImage] as? UIImage {

            imageView.image = originalImage
            if let imgData = UIImageJPEGRepresentation(originalImage, 0.2) {
                let parameters = ["user":"Sol", "password":"secret1234"]
                upload(params: parameters, imageData: imgData)
            }
        }
        picker.dismiss(animated: true, completion: nil)
    }

    func upload(params : [String: Any], imageData: Data) {

        if let url = URL(string: "EnterUrl") {
            Alamofire.upload(
                multipartFormData: { (multipartdata) in

                    multipartdata.append(
                        imageData,
                        withName: "fileset",
                        fileName: String("\(Date().timeIntervalSince1970).jpg"),
                        mimeType: "image/jpg"
                    )

                    for (key,value) in params {
                        if let data = value as? String,
                            let data1 = data.data(using: .utf8)
                        {
                            multipartdata.append(
                                data1,
                                withName: key
                            )
                        }
                    }
            },
                to: url,
                method: .post,
                headers: nil,
                encodingCompletion: { (result) in
                    switch result {
                    case .success(let upload, _, _):
                        upload.responseJSON(completionHandler: { (response) in
                            if let err = response.error {
                                    print(err.localizedDescription)
                            } else {
                                print(response.result.value ?? "No data")

                            }
                        })
                    case .failure(let error):
                        print(error.localizedDescription)
                    }
                }
            )
        }

    }
}

嘗試這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM