2017-08-13 101 views
1

我在swift 3文件管理器中有一些文件我想上傳它們,但是當我用它們將它們轉換爲base 64時,它們的大小將非常大!所以我想壓縮數據之前轉換成基地64如何在swift 3中壓縮數據?

這裏是我的代碼轉換

for i in 0...(rows?.count)! - 1 { 

    let filePath = filesurl[fileManagerViewController.selectedFileIndex[i]] 
     do { 
      let fileData = try Data.init(contentsOf: filePath) 

      let fileStream:String = fileData.base64EncodedString(options: NSData.Base64EncodingOptions.init(rawValue: 0)) 

      fileManagerViewController.upupload.append(fileStream) 


     } catch { 
      print(error.localizedDescription) 
     } 


     } 

我用

let compressedData = fileData(UF_COMPRESSED) 

但並沒有爲我工作,所以請大家幫我壓縮文件文件,然後將它們轉換成基本64進行上傳

回答

2

這裏的libcompression包裝Swift 3編寫。 https://github.com/mw99/SwiftDataCompression

斯威夫特libcompression包裝作爲一個擴展的數據類型(ZLIB,LZFSE,LZMA,LZ4,放氣,RFC 1950,RFC-1951)

所以,你可以壓縮你的數據一樣, :

let fileData = try Data.init(contentsOf: filePath) 
let compressedData = fileData.compress(withAlgorithm: .LZFSE)