swift - Upload video to server by using Alamofire -


i used alamofire upload chosen image server , it's working don't know how can make same thing selected video device after select , store path of video @ variable , how can use alamofire upload video server ?

my code:

import uikit import alamofire import avkit import avfoundation import mediaplayer import mobilecoreservices  class sendfinalnews: uiviewcontroller, uiimagepickercontrollerdelegate,uinavigationcontrollerdelegate  {  @iboutlet weak var titletext: uitextfield! @iboutlet weak var msgdetailtext: uitextview! @iboutlet weak var sendindicator: uiactivityindicatorview! @iboutlet weak var loadedimage: uiimageview!  var customer_key = "dkeqnq9fmkhq" var titlemsg = "" var detailmsg = ""  var videourl:string!   var playerviewcontroller = avplayerviewcontroller() var playerview = avplayer()  override func viewdidload() {     super.viewdidload()  }  @ibaction func addvideobutton(sender: anyobject) {      var videopickercontroller = uiimagepickercontroller()     videopickercontroller.delegate = self      videopickercontroller.sourcetype = .savedphotosalbum     videopickercontroller.mediatypes =  [kuttypemovie string]        self.presentviewcontroller(videopickercontroller, animated: true, completion: nil)  } @ibaction func addimagebutton(sender: anyobject) {     let imagepicker = uiimagepickercontroller()     imagepicker.delegate = self     imagepicker.sourcetype = uiimagepickercontrollersourcetype.photolibrary      self.presentviewcontroller(imagepicker, animated: true, completion: nil) }    func imagepickercontroller(picker: uiimagepickercontroller, didfinishpickingmediawithinfo info: [string : anyobject]) {     let mediatype = info[uiimagepickercontrollermediatype] as! nsstring      let url = info[uiimagepickercontrollermediaurl]     print(url)     if mediatype.isequaltostring(kuttypeimage string)     {          loadedimage.image = info[uiimagepickercontrolleroriginalimage] as? uiimage       }     else if mediatype.isequaltostring(kuttypemovie  string)     {         let urlofvideo = info[uiimagepickercontrollermediaurl] as? nsurl         if let url = urlofvideo {              print("video loadaed")             videourl = string(urlofvideo)             print(videourl)           }      }        self.dismissviewcontrolleranimated(true, completion: nil ) }   @ibaction func backbutton(sender: anyobject) {      self.dismissviewcontrolleranimated(true, completion: nil )  } @ibaction func sendbutton(sender: anyobject) {      titlemsg = titletext.text!     detailmsg = msgdetailtext.text!      self.sendindicator.startanimating()      dispatch_async(dispatch_get_global_queue(dispatch_queue_priority_default, 0), { () -> void in          // ...         // heavy loop codes here         // ...          self.uploadfile()          dispatch_async(dispatch_get_main_queue(), { () -> void in             self.sendindicator.stopanimating()         })     }); }    func uploadfile()  {      //let image = uiimage(named: "ios9.jpg")     let newimage : nsdata = uiimagejpegrepresentation(loadedimage.image!, 32)!      let newrandomname = randomstringwithlength(32)     let fname = (newrandomname string) + ".jpg"      let parameters = [         "pic"           :netdata(data: newimage, mimetype: .imagejpeg, filename: fname),         "msg"     :self.detailmsg,         "customer_key" : self.customer_key     ]        let urlrequest = self.urlrequestwithcomponents("myurlhere", parameters: parameters)      alamofire.upload(urlrequest.0, data: urlrequest.1)         .progress { (byteswritten, totalbyteswritten, totalbytesexpectedtowrite) in             print("\(totalbyteswritten) / \(totalbytesexpectedtowrite)")         }         .responsejson { response in             debugprint(response)     }  }   func urlrequestwithcomponents(urlstring:string, parameters:nsdictionary) -> (urlrequestconvertible, nsdata) {      // create url request send     let mutableurlrequest = nsmutableurlrequest(url: nsurl(string: urlstring)!)     mutableurlrequest.httpmethod = alamofire.method.post.rawvalue     //let boundaryconstant = "myrandomboundary12345"     let boundaryconstant = "net-post-boundary-\(arc4random())-\(arc4random())"     let contenttype = "multipart/form-data;boundary="+boundaryconstant     mutableurlrequest.setvalue(contenttype, forhttpheaderfield: "content-type")       // create upload data send     let uploaddata = nsmutabledata()      // add parameters     (key, value) in parameters {          uploaddata.appenddata("\r\n--\(boundaryconstant)\r\n".datausingencoding(nsutf8stringencoding)!)          if value netdata {             // add image             let postdata = value as! netdata               //uploaddata.appenddata("content-disposition: form-data; name=\"\(key)\"; filename=\"\(postdata.filename)\"\r\n".datausingencoding(nsutf8stringencoding)!)              // append content disposition             let filenameclause = " filename=\"\(postdata.filename)\""             let contentdispositionstring = "content-disposition: form-data; name=\"\(key)\";\(filenameclause)\r\n"             let contentdispositiondata = contentdispositionstring.datausingencoding(nsutf8stringencoding)             uploaddata.appenddata(contentdispositiondata!)               // append content type             //uploaddata.appenddata("content-type: image/png\r\n\r\n".datausingencoding(nsutf8stringencoding)!) // mark this.             let contenttypestring = "content-type: \(postdata.mimetype.getstring())\r\n\r\n"             let contenttypedata = contenttypestring.datausingencoding(nsutf8stringencoding)             uploaddata.appenddata(contenttypedata!)             uploaddata.appenddata(postdata.data)          }else{             uploaddata.appenddata("content-disposition: form-data; name=\"\(key)\"\r\n\r\n\(value)".datausingencoding(nsutf8stringencoding)!)         }     }     uploaddata.appenddata("\r\n--\(boundaryconstant)--\r\n".datausingencoding(nsutf8stringencoding)!)        return (alamofire.parameterencoding.url.encode(mutableurlrequest, parameters: nil).0, uploaddata) }   func randomstringwithlength (len : int) -> nsstring {      let letters : nsstring = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789"      var randomstring : nsmutablestring = nsmutablestring(capacity: len)      (var i=0; < len; i++){         var length = uint32 (letters.length)         var rand = arc4random_uniform(length)         randomstring.appendformat("%c", letters.characteratindex(int(rand)))     }      return randomstring  }   } 

netdata class:

import foundation import uikit  enum mimetype: string { case imagejpeg = "image/jpeg" case imagepng = "image/png" case imagegif = "image/gif" case json = "application/json" case unknown = ""  func getstring() -> string? {     switch self {     case .imagepng:         fallthrough     case .imagejpeg:         fallthrough     case .imagegif:         fallthrough     case .json:         return self.rawvalue     case .unknown:         fallthrough     default:         return nil     } } }  class netdata  { let data: nsdata let mimetype: mimetype let filename: string  init(data: nsdata, mimetype: mimetype, filename: string) {     self.data = data     self.mimetype = mimetype     self.filename = filename }  init(pngimage: uiimage, filename: string) {     data = uiimagepngrepresentation(pngimage)!     self.mimetype = mimetype.imagepng     self.filename = filename }  init(jpegimage: uiimage, compressionquanlity: cgfloat, filename: string) {     data = uiimagejpegrepresentation(jpegimage, compressionquanlity)!     self.mimetype = mimetype.imagejpeg     self.filename = filename } } 


Comments