base64 — PHP base64_decode возвращает неверный файл изображения
Я сохраняю загруженную строку base64 в файл, используя PHP. Эта строка происходит из приложения для iPhone и представляет собой файл JPEG в кодировке base64.
Когда я беру содержимое этого файла и добавляю его вручную в источник данных в теге изображения, он отображается ПРАВИЛЬНО. Когда я читаю его с помощью file_get_contents и добавляю полученную строку в тег данных img, он работает ПРАВИЛЬНО.
Моя проблема: когда я читаю файл с помощью file_get_contents и сохраняю результаты с помощью base64_decode (), результирующий файл jpeg НЕДЕЙСТВИТЕЛЬНЫМ.
Мой вопрос: почему явно действительная строка в кодировке base64 не дает действительный файл JPEG при декодировании и сохранении?
Некоторые исходные выдержки:
Это работает как надо, выводит изображение:
Это НЕ работает и файл недействителен:
— img.jpg — это неверный файл.
Пути действительны, файл есть, разрешения также есть (полученный файл img.jpg — это двоичный файл, просто недействительный), и, как я уже сказал, он работает как источник данных.
Вот кодированный в base64 файл:
- Версия PHP 5.3.8 с использованием FASTCGI
- ОС Windows 2008 R2
- Веб-сервер IIS 7.5
Любая помощь приветствуется.
Решение
% символы не допускаются в наборе b64. Похоже, ваша строка закодирована в URL. urldecode() это, прежде чем передать его base64_decode() ,
Он работает в браузере так, как он есть, потому что они всегда декодируют атрибуты URL.
Источник
Php base64 decode не работает
| savage |
| ||
Шустрый Профиль Репутация: нет В переменной $_GET[‘str’] храница надпись «Добро пожаловать», только закодированная с помощью base64_encode($_GET[‘str’])=’xO7h8O4g7+7m4Ovu4uDy/C4=’ | |
Velichko Anton
Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург
Репутация: нет
Всего: 18
| Код |
| echo base64_decode(urldecode($_GET[‘str’])); |
Это сообщение отредактировал(а) AntonioBanderaz — 22.1.2006, 03:38
| savage |
| ||
Шустрый Профиль Репутация: нет | |||
| |
| Mal Hack |
| ||
Мудрый. Профиль Репутация: 16 | |||
| |
| savage |
| ||
Шустрый Профиль Репутация: нет
| |||
| |
| wsr |
| |||||||||
Fuzzy Logic Профиль Репутация: нет
На и как уже сказали, это urlencode();
[ Время генерации скрипта: 0.1098 ] [ Использовано запросов: 21 ] [ GZIP включён ] Источник | ||||||||||