![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте.
Пишу почтовую программу, что будет получать письма с почтовых серверов и помещать их в базу данных на другом сервере.
Среди данных могут встречаться приложенные к письмам файлы (attachments). Собственно, нужно организовать их хранение.
Итак, задача:
на локальном компе есть файл, скажем, ok.ico, лежащий в корне диска C:\
Выполняю:
INSERT INTO bin2 (bin_data, description, filename, filesize, filetype) VALUES (LOAD_FILE('C:\ok.ico'), 'test_description', 'ok.ico', '555', 'ico');Не работает, ибо LOAD_FILE может подцепить файлы, только лежащие на сервере.
Т.е. если скопирую на сервер и выполню:
INSERT INTO bin2 (bin_data, description, filename, filesize, filetype) VALUES (LOAD_FILE('/share/HDA_DATA/Public/ok.ico'), 'test_description', 'ok.ico', '555', 'ico');То всё нормально. Требуется, однако, загружать файлы с локального компа. Это как-нибудь реализуемо?
Передавать содержимое файла строкой не хочу, т.к. боюсь упереться в ограничение длины запроса.
Спасибо
Отредактированно Latoid (27.09.2010 06:27:55)
Неактивен

Даже если бы был аналог локального LOAD FILE — Вы бы все равно
уперлись в длину пакета, правда ведь? ![]()
Можете поизучать LOAD DATA LOCAL INFILE, но, кажется, Вы пытаетесь
обойти несуществующую проблему, причем очень странным способом.
Неактивен
paulus
Подскажите, пожалуйста, как бы вы решали эту проблему на моем месте? Я до чего сам додумался, так вопрос и поставил )
Неактивен

Загрузил бы файл локально и вставлял как простую строку. Если не хватит
размера пакета, нужно просто поднять значение max_allowed_packet.
Неактивен
Спасибо
Неактивен