Задать вопрос
@Johnick

Как достать вложения из БД MS SQL?

Приветствую.
Имеется БД MS SQL в которой в одной из таблиц хранятся вложения (формат вложений может быть любым) в поле VARBINARY(MAX).
Доступа к исходникам скрипта которые добавлял файлы в БД, как обычно нет.

Как при помощи PHP правильно достать эти вложения и отдать пользователю для скачивания, либо сохранить в файл?

На текущий момент простым селектом (без каких либо преобразований) получается, доставать PDF файлы маленького размера ~ до 60 Кб. Если размер больше, либо файлы другого формата, то файл оказывается битым.
  • Вопрос задан
  • 896 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Stepik
    PHP (pro)
    1 месяц
    Далее
Решения вопроса 1
tsklab
@tsklab Куратор тега Microsoft SQL Server
Здесь отвечаю на вопросы.
Извлечение двоичных данных.

Перед картинкой что-то есть.
В базе данных правильные данные?SELECT CONVERT(varchar(10), Photo, 2) FROM Photo Для JPG должно быть FFD8FFE000

Первые 10 символов: ACED000575
Т.е. если не знать, что система туда подмешивает, данные не получится нормально достать?

Да. Это уже не MS SQL, это — преобразованный файл.
Но можно попробовать, например, может ли действительный PDF быть «Java-данными сер.... То есть ваша читалка PDF отбрасывает данные до сигнатуры. Для других файлов попробуйте отбросить первые 27 байт.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы