I am unable to upload my image on server. I am using multpart form data.I am selecting Image from ImagePicker controller.Everything is set Imagerpicker delegate each and everything .after uploading image it is not shoeing any error but image is not uploading on server.and also when I select image using imagepicker it shows a error like Creating an image format with an unknown type is an error but my app does not crashes
this is the code that I am using in swift3 for sending image. Here is my Code that I am Using.
viewcontroller.swift //I am not writnig full code but from the following action of button i am calling that function
button Action{
// my image
let image = userImage.image
let unwrappedImage = image!
let data = UIImageJPEGRepresentation(unwrappedImage, 1.0)
let params = ["user_dob":dob, "user_gender":"1", "user_name": username, "user_status":userstatus] as NSDictionary
self.UploadRequest(image:data,parameters:params)
}
my function for uploading image and data
func UploadRequest(image:NSData,parameters:NSDictionary){
let url = NSURL(string: "myURL")
let request = NSMutableURLRequest(url: url! as URL)
request.httpMethod = "POST"
let boundary = generateBoundaryString()
let secretKey = defaults.string(forKey: "secretKey")
request.setValue(secretKey, forHTTPHeaderField: "auth_key")
request.setValue("multipart/form-data; boundary=\(boundary)",forHTTPHeaderField: "Content-Type")
let body = NSMutableData()
body.append("--\(boundary)\r\n".data(using: .utf8)!)
body.append("Content-Disposition:form-data; name=\"test\"\r\n\r\n".data(using: String.Encoding.utf8)!)
body.append("hi\r\n".data(using: .utf8)!)
body.append("--\(boundary)\r\n".data(using: .utf8)!)
//body.append("Content-Disposition:form-data; name=\"file\"; filename=\"\(fname)\"\r\n".data(using: .utf8)!)
//body.append("Content-Type: \(mimetype)\r\n\r\n".data(using: .utf8)!)
body.append(image as Data)
body.append("\r\n".data(using: String.Encoding.utf8)!)
for(key,value) in parameters{
body.append("--\(boundary)\r\n".data(using: .utf8)!)
body.append("Content-Disposition:form-data; name=\"file\";filename=\"\(key)\"\r\n\r\n\(value)".data(using: .utf8)!)
}
body.append("--\(boundary)--\r\n".data(using: .utf8)!)
let session = URLSession.shared
let task = session.dataTask(with: request as URLRequest) {
(
data, response, error) in
guard let _:NSData = data as NSData?, let _:URLResponse = response , error == nil else
{
print("error")
return
}let dataString =NSString(data:data!,encoding:String.Encoding.utf8.rawValue)
print(dataString)
}
task.resume()
}