2016-03-01 208 views
0

我已經上傳視頻文件到服務器,但文件大小爲零。上傳視頻文件到服務器

let url:NSURL? = NSURL(string: (Config.sampleuploadurl as String)+"/uploadServlet?chehara_email=\(candit_email)") 
// let url:NSURL? = NSURL(string: (Config.apiUrl as String)+"/UploadServlet?chehara_email=\(candit_email)") 
print(url) 
let cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData 
var request = NSMutableURLRequest(URL: url!, cachePolicy: cachePolicy, timeoutInterval: 2.0) 
request.HTTPMethod = "POST" 
let boundaryConstant = "Boundary-7MA4YWxkTLLu0UIW"; // This should be auto-generated. 
let contentType = "multipart/form-data; boundary=" + boundaryConstant 

let fileName:String = videoName 

let mimeType = "text/MOV" 
let fieldName = "uploadFile" 

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

var error: NSError? 
var dataString = "--\(boundaryConstant)\r\n" 

dataString += "Content-Disposition: form-data; name=\"\(fieldName)\"; filename=\"\(fileName)\"\r\n" 
print("dataString") 

dataString += "Content-Type: \(mimeType)\r\n\r\n" 
print(dataString) 

dataString += String(contentsOfFile: videoName, encoding: NSUTF8StringEncoding, error: &error)! // This is Error Line 

dataString += "\r\n" 
dataString += "--\(boundaryConstant)--\r\n" 

let requestBodyData = (dataString as NSString).dataUsingEncoding(NSUTF8StringEncoding) 
print("Request") 
print(requestBodyData) 

request.HTTPBody = requestBodyData 
print(request.HTTPBody) 

}) 

我指這個tutorial

+0

'文件name'你得到的數據或不 –

+0

我很驚訝地看到電影在UTF8編碼,你不應該使用的NSData? – Xvolks

+0

雅我收到MOV文件並上傳mov文件,但包含大小爲零 – Manikandaprabu

回答

0

Eric, 你不應該使用NSMutableURLRequest,你應該使用NSURLSession。這裏是一些我代碼我張貼其他

http://stackoverflow.com/questions/35604866/swift-send-file-to-server/35609325#35609325 

這篇文章我回復也顯示其實施。 NSMutableURLRequest正在折舊。

這裏是關於這個主題的幾個優秀教程中的一個;沒有我不是巴特雅各布斯變相:)

http://code.tutsplus.com/tutorials/networking-with-nsurlsession-part-1--mobile-21394