Как определить, какой файл из строки файла - PullRequest
0 голосов
/ 05 июня 2019

У меня есть строка файла, которую я не могу декодировать, чтобы получить изображение. Я уверен, что это строка UTF-8, так как она начинается с 0xFF. Это определенно шестнадцатеричное значение длиной 259 символов. Я считаю, что это из дампа двоичного файла из столбца сервера MYSQL.

Я очень привык иметь возможность извлекать строки изображений Base64 и передавать их через imagemagick для создания изображений, но когда мне вручили эти строки изображений, я был совершенно поражен, когда кто-то сказал мне, что это целые файлы. 259 символов кажутся маленькими, но я думаю, что мне также может не хватать какой-то проход преобразования, чтобы получить всю строку.

"0xFFD8FFE1149F4578 ... 1320002000000140000" (длиной 259 символов.)

1 Ответ

0 голосов
/ 25 июня 2019

Это оказалось тем, что происходит, когда вы используете MariaDB LOAD_FILE в varchar (259).Весь файл отправляется, но сохраняются только первые 259 символов.Оказывается, гораздо меньше понимания, что это за файл, но что происходит, когда вы не настраиваете свою БД с правильными типами столбцов.Когда я сделал этот эксперимент с типом LONGTEXT.Я был в состоянии загрузить файлы и выбрать их снова.Хотя в итоге они попадают в очень странный подкаталог в папке MariaDB и т. Д. С временной папкой.

Все ваши предложения устарели, просто не было всех данных.

Это прямо с веб-сайта MySQL :

"Если режим строгого SQL не включен и вы присваиваете столбцу CHAR или VARCHAR значение, которое превышает максимальную длину столбца,значение усекается до значения и генерируется предупреждение. Для усечения непространственных символов вы можете вызвать ошибку (а не предупреждение) и запретить вставку значения с помощью режима строгого SQL (см. раздел 5.1.11, «Режимы SQL сервера». "

...