简体   繁体   English

使用alamofire swift上传图像

[英]Upload an image using alamofire swift

  self.manager!.request( RestApiManager.sharedInstance.baseURL+"rest/secure/add/"+self.id!+"/create?language="+lang, method: .post, parameters: requestDictionary, encoding: URLEncoding.httpBody,headers: headers ).responseObject(keyPath: "") { (response: DataResponse<User>) in 

This is how I call my post method, however I need to add image file uploaded as well with it. 这就是我调用post方法的方式,但是我还需要添加上传的图像文件。 Entity part called uploadFile.How this be done ? 实体部分称为uploadFile。如何完成?

 entity.addPart("uploadFile", new FileBody(f100)); let image_data = UIImagePNGRepresentation(imagetoadd.image!) 

I want to upload an image , with parameters heading as well like username - john and headers, plus i want to get dataresponse type user ( mapped to) 我想上传一个图像,带有参数标题以及用户名-john和headers,再加上我想获取dataresponse类型的用户(映射到)

am trying sthg like this in swift 3, its not working. 我正在迅速3尝试这样的操作,它不起作用。

  self.manager!.upload(.post,RestApiManager.sharedInstance.baseURL+"rest/secure/stores/"+self.id!+"/create?language="+lang, // define your headers here multipartFormData: { multipartFormData in // import image to request if let imageData = UIImageJPEGRepresentation(image, 1) { multipartFormData.appendBodyPart(data: image_data, name: "uploadFile", fileName: nameOfImage+".png", mimeType: "image/png") } // import parameters for (key, value) in parameters { multipartFormData.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: key) } }, // you can customise Threshold if you wish. This is the alamofire's default value encodingMemoryThreshold: manager.MultipartFormDataEncodingMemoryThreshold, encodingCompletion: { encodingResult in switch encodingResult { case .Success(let upload, _, _): upload.responseJSON { response in debugPrint(response) } case .Failure(let encodingError): print(encodingError) } },headers: headers) } 

Missing argument using trashold in call.Am using latest alamofire library 使用最新的alamofire库在call.Am中缺少参数

func uploadImageInDatabase(image:UIImage)
{
    let imageData = UIImageJPEGRepresentation(image, 0.4)
    let url = "Your server url"
    let date = NSDate()
    let df = DateFormatter()
    df.dateFormat = "dd-mm-yy-hh-mm-ss"

    let imageName = df.string(from: date as Date)
    print(imageName)

     SVProgressHUD.show(withStatus: "Loading")

            Alamofire.upload(multipartFormData: { (multipartFormData) in
                 multipartFormData.append(imageData!, withName: "uploadedfile", fileName: "\(imageName).jpeg", mimeType: "image/jpeg")
                }, to: url) { (encodingResult) in


                    switch encodingResult {
                    case .success(let upload, _, _):

                        upload.responseJSON{
                            response in

                            if let data = response.result.value{
                                DispatchQueue.main.async {
                                    if(response.response?.statusCode == 200){
                                        //callback(true, JSON(data), JSON((response.response?.statusCode)!))
                                        let Data = data as! NSDictionary
                                        showAlert(message: Data["msg"]as! NSString)

                                        self.ImageURL = Data["data"]as! String
                                        print(self.ImageURL)
                                        SVProgressHUD.dismiss()

                                    } else{
                                        //callback(false, JSON(data), JSON((response.response?.statusCode)!))
                                        print(data)
                                        SVProgressHUD.dismiss()
                                    }
                                }
                            }

                        }

                    case .failure(let encodingError):
                        print(encodingError)
                        SVProgressHUD.dismiss()
                        DispatchQueue.main.async {
                            //callback(false,JSON(self.getStatusCodeString(408)),JSON(408))
                        }

    }


    }

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM