4
votes

i upload photo with alamofird with 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 following Error :

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

and from to day ago this code was working

1
Just replace your appendBodyPart constructor.hope this will help - Avijit Nagare
@AvijitNagare i update code with new constructor and i have same error - Khaled Ald
Change encoding, check not you are passing values not optionals.try my code by putting your param. - Avijit Nagare
alright. this is good question :D - Avijit Nagare

1 Answers

3
votes

Just replace your

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

constructor method to this constructor

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

Ex.

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.hope this help.