Бинарные файлы PHP (изображения) повреждены при хранении в базе данных, но не DOCs из вложений электронной почты

Проблема заключается в том, что когда я получаю вложения электронной почты, изображения / двоичные данные повреждаются, однако при загрузке файлов в ту же таблицу базы данных они не повреждаются.

На левой стороне находится нормальное изображение, которое работает (когда переименовано в PHP и его двоичные данные копируются). Правая сторона - это изображение после его повреждения. Я решил добавить это изображение, потому что кто-то может его увидеть и просто знать, что здесь происходит. Код PHP ниже...

Рабочее изображение с левой стороны, поврежденное изображение с правой стороны

Поэтому у меня есть другие файлы, включая изображения, хранящиеся в базе данных, и они работают просто отлично...

$data = fread($fp, filesize($tmpName));
$data = addslashes($data);
//INSERT INTO table (data), ($data);//etc

Однако ошибка происходит в коде PHP, который я использую для очистки электронной почты, а затем сохраняю их в базе данных вместе с прикрепленными файлами. Я знаю, что прикрепленные файлы нацелены на PHP правильно, поэтому просто КАК я их храню, и это, похоже, проблема. Столбец данных в MySQL longblob и загрузка изображений перед их отправкой работает нормально, но когда я ПОЛУЧАЮ электронную почту, этот код, который обрабатывает размещение полученных вложений, является тем, что ломает (используя ту же таблицу базы данных).

$data = mysqli_real_escape_string($connection,base64_decode($email['attachments'][$t]['attachment']));
$data = mysqli_real_escape_string($connection,$email['attachments'][$t]['attachment']);
$data = base64_decode($email['attachments'][$t]['attachment']);
$data = mysql_real_escape_string(base64_decode($email['attachments'][$t]['attachment']));
$data = addslashes($email['attachments'][$t]['attachment']);

0 ответов

Другие вопросы по тегам