Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте.
Пишу почтовую программу, что будет получать письма с почтовых серверов и помещать их в базу данных на другом сервере.
Среди данных могут встречаться приложенные к письмам файлы (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.
Неактивен
Спасибо
Неактивен