В настоящее время я работаю над проектом Ionic. Мы хотим передать файлы с использованием аутентификации, поэтому я делаю запрос на сервер с токеном сеанса в заголовке, а затем сервер возвращает фрагмент кода JSON. Этот JSON содержит тип файла (.png, .docx и т. Д.) И строку base64 файла.
Когда я записываю эту строку base64 в файл, я получаю точно такую же строку в файле. Однако, если я использую atob()
Функция для его декодирования, я получаю поврежденный файл. Когда я открываю этот файл в блокноте, я вижу, что более 99% файла совпадают с оригиналом. Только несколько символов разные. Кто-нибудь знает решение этой проблемы?
Файл загружается через веб-портал в среду PHP. Когда мы используем код PHP для получения файла и декодирования строки base64 в файл, все работает просто отлично. (PHP-фреймворк возвращается в UTF-8).
$http({method: "GET", url: "PATH TO SERVER" + students[y].id + ".json"}).then (function(result) {
$cordovaFile.writeFile(cordova.file.externalCacheDirectory, fileName + result.data.data.data(filetype), result.data.data.base64, true).then(function(res) {
console.log(res);
});
})
Задача ещё не решена.
Других решений пока нет …