Я получаю zip-файл в формате json в виде строки (utf-8). Почтовый индекс содержит несколько PNG. Я хочу использовать эту строку, сделать из нее строку zip-файла и сохранить ее как файл на телефоне.
Однако, когда я пытаюсь преобразовать строку в данные с base64 и записать ее в файл zip, он создаст zip-файл, но вы не сможете его открыть.
Когда я загружаю контейнер моего приложения в xcode (окно -> Устройства и симуляторы -> myApp -> скачать контейнер), он показывает мне файл, но когда я пытаюсь распаковать его вручную, он создаст новый файл с расширением .cpgz. Вы можете увидеть это по ссылке ниже.
вот изображение файлов
Строка Json выглядит следующим образом:
"data:application/x-zip-compressed;base64,$ThisIsAVeryLongCrypticString$"
Я оба пытался вырезать предварительную строку из строки zip: «data: application / x-zip-compress; base64», и просто использовал длинную строку для сохранения данных и сделал то же самое с предварительной Строка (включая длинную строку), но она все равно не будет работать.
Мой код:
let fm = FileManager()
guard let uuid = UUID(beCarModel.uuid) else {
return
}
var zipPath = fm.temporaryDirectory
zipPath.appendPathComponent(uuid.uuidString)
zipPath.appendPathExtension("zip")
if fm.fileExists(atPath: zipPath.path) {
try? fm.removeItem(at: zipPath)
}
let newString = json.zip.replacingOccurrences(of: "data:application/x-zip-compressed;base64,", with: "")
guard (try? newString.data(using: .utf8)?.base64EncodedData().write(to: zipPath)) != nil else {
return
}