如何在swift中将视频文件转换为多种形式的数据? [英] How to convert video file to multiform data in swift?

查看:152
本文介绍了如何在swift中将视频文件转换为多种形式的数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我曾经尝试过这段代码,但我无法获取视频的路径并将文件转换为多种形式的数据是否有任何其他方法来转换文件。代码适用于图像上传但视频我不喜欢知道出了什么问题

I had tried this code but I can't get the path of the video and convert the file to multiform data is there is any other method to convert the file.The code works fine for image upload but for video I don't know what went wrong

    var path = NSBundle.mainBundle().pathForResource("sample", ofType: "mp4")
                var data1 = NSData(contentsOfFile:path!)
                var videodata:NSData=NSData(data:data1!)
                var len = videodata.length
                println()
                var postlength:NSString = NSString(format:"%d",len)
                var request = NSMutableURLRequest(URL: NSURL(string:"(liveurl)/mobile/post/video_post")!)


            request.HTTPMethod = "POST"


            var boundary = NSString(format:"---------------------------14737809831466499882746641449")
            request.setValue(postlength, forHTTPHeaderField: "Content-Length")
            var contentType = NSString(format:"multipart/form-data; boundary=%@",boundary)

            request.addValue(contentType, forHTTPHeaderField: "Content-Type")

            var postData = NSMutableData.alloc()
            println(request)
            postData.appendData(NSString(format:"\r\n--%@\r\n",boundary).dataUsingEncoding(NSUTF8StringEncoding)!)

            postData.appendData(NSString(format:"Content-Disposition: form-data; name=\"uploadedfile\"; filename=\"video.mp4\"\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
            postData.appendData(NSString(format:"Content-Type: application/octet-stream\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)

            postData.appendData(videodata)
            println(videodata)
            postData.appendData(NSString(format:"\r\n--%@--\r\n",boundary).dataUsingEncoding(NSUTF8StringEncoding)!)


            println("postData")
            println(postData)
            request.HTTPBody = postData

            println("request")
            println(request)

            NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { (response: NSURLResponse!, data: NSData?, error: NSError!) -> Void in

                if (data != nil) {
                    println(response)
                    if let jsonArray: NSArray = NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableLeaves, error: nil) as NSArray? {

                        let jsonObject: NSDictionary? = jsonArray.objectAtIndex(0) as? NSDictionary
                        println(jsonObject!)
                        if (jsonObject != nil) {
                            println("object: %@", jsonObject!)

                            if (jsonObject != nil) {
                                println("\(jsonObject)")
                                // process jsonResult
                            } else {
                                println("no response \(error)")
                                // couldn't load JSON, look at error
                            }
                        }
                    }
                }
            }


推荐答案

var path = NSBundle.mainBundle().pathForResource("sample", ofType: "mp4")
          var data1 = NSData()
         var videodata: NSData? = NSData.dataWithContentsOfMappedFile(path!) as? NSData
         var request = NSMutableURLRequest(URL: NSURL(string:"the request url")!)

        var session = NSURLSession.sharedSession()

        request.HTTPMethod = "POST"


   //the encoding begins     
        var boundary = NSString(format: "---------------------------14737809831466499882746641449")
        var contentType = NSString(format: "multipart/form-data; boundary=%@",boundary)
         request.addValue(contentType, forHTTPHeaderField: "Content-Type")
        var body = NSMutableData.alloc()
         // Title

        body.appendData(NSString(format: "\r\n--%@\r\n",boundary).dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(NSString(format:"Content-Disposition: form-data; name=\"title\"\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData("Hello World".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!)


        body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData("Content-Disposition: form-data; name=\"fileToUpload\"; filename=\"sample.mp4\"\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(NSString(format: "Content-Type: application/octet-stream\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(videodata!)
        body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!)
        request.HTTPBody = body

        NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { (response: NSURLResponse!, data: NSData?, error: NSError!) -> Void in

            if (data != nil) {
                if let jsonArray: NSArray = NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSArray? {
                    println("json array\(jsonArray)")
                }
                else
                {
                 }
            }
        }
        }

这篇关于如何在swift中将视频文件转换为多种形式的数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆