如何在swift中将视频文件转换为多种形式的数据? [英] How to convert video file to multiform data in swift?
本文介绍了如何在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屋!
查看全文