Quickly upload image to php server using alamofire

I upload a photo using alamofird using this code:

Alamofire.upload(.POST, Url, multipartFormData: {
            multipartFormData in
            if let Data = UIImagePNGRepresentation(imageData) {
                multipartFormData.appendBodyPart(data: Data, name: "file", fileName: filename+".png", mimeType: "image/png")
                //print(Data)
            }
            multipartFormData.appendBodyPart(data: sessionId.dataUsingEncoding(NSUTF16LittleEndianStringEncoding)!, name: "session_id")
            multipartFormData.appendBodyPart(data: NSUserDefaults.standardUserDefaults().stringForKey("user_id")!.dataUsingEncoding(NSUTF8StringEncoding)!, name: "sender_id")

            }, encodingCompletion: {
                encodingResult in
                switch encodingResult {
                case .Success(let upload, _, _):
                    upload.responseJSON { response in
                        print(response)
                        //var data = JSON(response.result.value!)
                    }
                case .Failure(let encodingError):
                    print(encodingError)
                }
        })

and I have the following error:

FAILURE: Error Domain = NSCocoaErrorDomain Code = 3840 "Invalid value around character 0." UserInfo = {NSDebugDescription = Invalid value around character 0.}

and from that day ago this code worked

+4
source share
1 answer

Just replace

multipartFormData.appendBodyPart(data: NSUserDefaults.standardUserDefaults().stringForKey("user_id")!.dataUsingEncoding(NSUTF8StringEncoding)!, name: "sender_id")

constructor method for this constructor

 multipartFormData.appendBodyPart(data: image1Data, name: "post_img0", fileName: fileName!, mimeType: "image/png")

Ref.

let userID = NSUserDefaults.standardUserDefaults().integerForKey("UserID")
        let userData = String("\(userID)").dataUsingEncoding(NSUTF8StringEncoding)

        var image1Data : NSData!
        if(self.fecalImageView.image == nil ){
        }else{
            image1Data = UIImageJPEGRepresentation( self.fecalImageView.image!, 0.5)!
        }
        Alamofire.upload(
            .POST,
            "http://www.imagesample.php",
            multipartFormData: { multipartFormData in

                 multipartFormData.appendBodyPart(data: userData!, name: "user_id")
                if(image1Data == nil){

                }else{
                    multipartFormData.appendBodyPart(data: image1Data, name: "post_img0", fileName: fileName!, mimeType: "image/png")
                }
            },
            encodingCompletion: { encodingResult in
                switch encodingResult {

                case .Success(let upload, _, _):
                    upload.responseJSON { response in

                        if let dict = response.result.value {
                            let msg = dict["msg"]!


                            if msg!.isEqualToString("sample Added successfully") {


                            }
                        }
                    }
                case .Failure(let encodingError):

                    print(encodingError)
                }
            }
        )

This will solve your problem. Direct this help.

+3
source

All Articles