Here I made my own web service, you can use it. This web service is designed to download a dictionary with an image and video, with or without both.
import Foundation import Alamofire class WebServiceHandler: AnyObject { func uploadWithAlamofire(Parameters params : [NSObject : AnyObject]?,ImageParameters imgparams : [NSObject : AnyObject]?,VideoParameters vidoparam : [NSObject : AnyObject]?,Action action : NSString, success: @escaping (AnyObject) -> Void, failure: @escaping (AnyObject) -> Void) { var base_url = "http://benzatineinfotech.com/webservice/finder/index.php/Web_api/" base_url.append(action as String) Alamofire.upload(multipartFormData: { multipartFormData in if imgparams != nil{ for (key, value) in imgparams! { if let imageData = UIImageJPEGRepresentation(value as! UIImage, 1) { multipartFormData.append(imageData, withName: key as! String, fileName: "\(NSDate().timeIntervalSince1970 * 1000)).jpg", mimeType: "image/jpg") } } } if vidoparam != nil{ for (key, value) in vidoparam! { multipartFormData.append(value as! URL , withName: key as! String, fileName: "\(NSDate().timeIntervalSince1970 * 1000).mp4", mimeType: "application/octet-stream") } } if params != nil { for (key, value) in params! { multipartFormData.append((value as! String).data(using: .utf8)!, withName: key as! String) } } }, to: base_url, method: .post, headers: nil, encodingCompletion: { encodingResult in switch encodingResult { case .success(let upload, _, _): upload.uploadProgress { progress in print(progress.fractionCompleted) } upload.response { [weak self] response in guard self != nil else { return } let responseString = String(data: response.data!, encoding: String.Encoding.utf8) return success(responseString as AnyObject) } case .failure(let encodingError): print("error:\(encodingError)") return failure(encodingError as AnyObject) } }) } func convertToDictionary(text: String) -> [String: Any]? { if let data = text.data(using: .utf8) { do { return try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] } catch { print(error.localizedDescription) } } return nil } }
Using:
self.webservice.uploadWithAlamofire(Parameters: dict_params as [NSObject : AnyObject], ImageParameters: imgparam as [NSObject : AnyObject], VideoParameters: videoparam as [NSObject : AnyObject], Action: "write_message", success: { (success) in print(success) }) { (error) in print(error) }
Jitendra modi
source share