Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Преобразовать base64 в файл (картинку)  [new]
Sobsoft
Member

Откуда:
Сообщений: 19
Здравствуйте. Необходимо преобразовать картинки, находящиеся в формате base64 в БД MSSQL 2012. Картинок много. Сначала думал сделать преобразованием в XML-файл, загрузкой его на хостинг php+mysql+apache, а потом через php-скрипт из xml преобразовать в файлы (jpg,png и т.д.). С небольшим файлом (около 5 МБ) скрипт сработал, но когда я решил преобразовать весь нужный объем - получился XML файл размером 3 Гигабайта. Естественно php мне сказал идти курить бамбук.

Что в итоге требуется. Мне нужно делать выгрузку файлов (изображений) из базы на хостинг. Как это можно ещё сделать? Желательно с примерами.
18 авг 14, 10:19    [16454323]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать base64 в файл (картинку)  [new]
Glory
Member

Откуда:
Сообщений: 104751
Sobsoft
Мне нужно делать выгрузку файлов (изображений) из базы на хостинг. Как это можно ещё сделать?

Вы же уже получили "получился XML файл размером 3 Гигабайта."
Что еще вы хотите от MSSQL ?
18 авг 14, 10:30    [16454390]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать base64 в файл (картинку)  [new]
Sobsoft
Member

Откуда:
Сообщений: 19
Glory
Вы же уже получили "получился XML файл размером 3 Гигабайта."
Что еще вы хотите от MSSQL ?

Ну например мог бы MSSQL сам преобразовывать файл из base64 в файл-картинку.
Я не знаю таких методов, поэтому и обратился сюда...
18 авг 14, 13:20    [16455716]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать base64 в файл (картинку)  [new]
Glory
Member

Откуда:
Сообщений: 104751
Sobsoft
Ну например мог бы MSSQL сам преобразовывать файл из base64 в файл-картинку.

Сам сервер ничего не делает.
А зачем вы выбираете бинарные данные с опцией BASE64 ?
18 авг 14, 13:25    [16455779]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать base64 в файл (картинку)  [new]
Офисный Хомячок
Member

Откуда: Офис
Сообщений: 1358
Есть утилита bcp с ее помощью можно вывести.
18 авг 14, 13:35    [16455906]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать base64 в файл (картинку)  [new]
Sobsoft
Member

Откуда:
Сообщений: 19
Glory
Sobsoft
Ну например мог бы MSSQL сам преобразовывать файл из base64 в файл-картинку.

Сам сервер ничего не делает.
А зачем вы выбираете бинарные данные с опцией BASE64 ?

ну вообще нужно картинку преобразовать в обычный файловый формат и уже использовать на внешнем сайте.
т.е. вообще так:
Из MSSQL Base64 в файловый формат, потом отправить все картинки на фтп сайта (который как я писал выше на хостинге в связке php+mysql+apache). Вообще в принципе можно было и просто base64 отправлять в mysql, но мне почему-то кажется, что табличка с 3,5 ГБ картинок в base64 в базе да ещё и на хостинге грозит проблемами с хостером из-за нагрузки + тормознутостью и не без того тяжелого сайта
19 авг 14, 12:15    [16461495]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать base64 в файл (картинку)  [new]
Glory
Member

Откуда:
Сообщений: 104751
Sobsoft
ну вообще нужно картинку

Нет такого типа данных "картинка"
Есть бинарный тип данных. И серверу все равно, что вы храните в этом типе

Sobsoft
Из MSSQL Base64 в файловый формат,

ЧТо такое "файловый формат" ?

Sobsoft
но мне почему-то кажется, что табличка с 3,5 ГБ картинок в base64 в базе да ещё и на хостинге грозит проблемами с хостером из-за нагрузки + тормознутостью и не без того тяжелого сайта

И причем тут MSSQL ?
19 авг 14, 12:19    [16461524]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать base64 в файл (картинку)  [new]
Sobsoft
Member

Откуда:
Сообщений: 19
Glory,
Ну давайте выражусь конкретней. MS Dynamics CRM хранит изображения в БД MSSQL. В виде строк, закодированных в base64. Зачем MS так придумали не знаю. Мне необходимо вытащить эти картинки из базы и отправить на сайте в формате файлов типа image.png, image2.jpg и т.д.
Вот я и хочу понять как вытащить эти изображения из базы и сделать из них файлы, а не строки в base64.
19 авг 14, 12:34    [16461678]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать base64 в файл (картинку)  [new]
guest12345
Guest
Sobsoft
Glory,
Ну давайте выражусь конкретней. MS Dynamics CRM хранит изображения в БД MSSQL. В виде строк, закодированных в base64. Зачем MS так придумали не знаю. Мне необходимо вытащить эти картинки из базы и отправить на сайте в формате файлов типа image.png, image2.jpg и т.д.
Вот я и хочу понять как вытащить эти изображения из базы и сделать из них файлы, а не строки в base64.

sql server тут не при делах.
Сохранение в файл должно осуществляться клиентом.
19 авг 14, 12:38    [16461706]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать base64 в файл (картинку)  [new]
Sobsoft
Member

Откуда:
Сообщений: 19
guest12345
Sobsoft
Glory,
Ну давайте выражусь конкретней. MS Dynamics CRM хранит изображения в БД MSSQL. В виде строк, закодированных в base64. Зачем MS так придумали не знаю. Мне необходимо вытащить эти картинки из базы и отправить на сайте в формате файлов типа image.png, image2.jpg и т.д.
Вот я и хочу понять как вытащить эти изображения из базы и сделать из них файлы, а не строки в base64.

sql server тут не при делах.
Сохранение в файл должно осуществляться клиентом.

печально. попробую поискать другие пути.
p.s. за утилитку bcp спасибо.
19 авг 14, 12:39    [16461712]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать base64 в файл (картинку)  [new]
guest12345
Guest
Sobsoft,

В том же php извлекайте бинарные данные через base64_decode и сохраняйте в целевой файловой системе через fopen/fwrite/fclose
19 авг 14, 12:44    [16461758]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать base64 в файл (картинку)  [new]
Glory
Member

Откуда:
Сообщений: 104751
Sobsoft
Мне необходимо вытащить эти картинки

Еще раз. Нет в MSSQL никаких картинок.
Есть набор байтов в том виде, в котором вы или ваша программ его записали в таблицу.
И на запрос сервер вам в радостью выдаст все, что записали в таблицу и в том виде, в котром вы записали в таблицу
Серверу все равно, какой смысл вы вкладываете в этот набор байтов.
19 авг 14, 12:46    [16461771]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать base64 в файл (картинку)  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Sobsoft, само преобразование можно и на стороне сервера сделать при желании: http://olontsev.ru/2013/06/convert-to-base64-and-back/
19 авг 14, 13:20    [16462039]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить