@Johnick

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

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

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

На текущий момент простым селектом (без каких либо преобразований) получается, доставать PDF файлы маленького размера ~ до 60 Кб. Если размер больше, либо файлы другого формата, то файл оказывается битым.
  • Вопрос задан
  • 823 просмотра
Решения вопроса 1
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
Извлечение двоичных данных.

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

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

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

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

Войти через центр авторизации
Похожие вопросы