Word file в поле таблицы

stepby

Новичок
Word file в поле таблицы

Добрый день!

Прошу помощи у знатаков.

Трабл в следующем - при сохранение файла в бинарном виде файл проблемный получается.

Описание:

Юзер перед отправкой email создает текстовое сообщение + приатачивает файл.

Из за большого количества писем все письма складываются в одну таблицу и потом по расписанию отсылаются.


Если письмо содержит атач файл ( например .doc )
то идет следующий код

$body .= "Content-Transfer-Encoding: 8bit\n\n".$blank_line.urldecode($mail_body)."\n\n";

$body .= "------------".$un."\nContent-Type: image/jpeg; name=\"email_logo.jpg\"\r\n";;
$body .= "Content-Transfer-Encoding: base64\r\n";
$body .= "Content-Location: email_logo.jpg\r\n";
$body .= $blank_line;
$body .= chunk_split(base64_encode(file_get_contents("img/email_logo.jpg")));
$body .= "\r\n";

if(is_array($uploaded_files) && count($uploaded_files) > 0)
{
foreach($uploaded_files as $name)
{
//Opening
$f = fopen($name,"rb");

$body .= "------------".$un."\n";
$body .= "Content-Type: application/octet-stream;";
$body .= "name=\"".basename($name)."\"\n";
$body .= "Content-Transfer-Encoding:base64\n";
$body .= "Content-Disposition:attachment;";
$body .= "filename=\"".basename($name)."\"\n\n";

$body .= chunk_split(base64_encode(fread($f,filesize($name))))."\n";

//Closing
fclose($f);
}
}
.......



если отослать без сохранения в базу - все отлично mail($email,$mail_subject,$body,$head);

если сохранить в базу - то файл с письмом приходит но при открытии ругается сам ворд

тип поля text в таблице

Прошу помощи!
 

Фанат

oncle terrible
Команда форума
Не люблю быть телепатом.
По хорошему, ты должен сам взять файл до записи в базу и после, и сравнить их.
но вот тебе готовый рецепт того, что МОЖЕТ БЫТЬ приводит к проблемам: PHP FAQ: \"Кавычки \". Cоставление запросов mysql, слеши, экранирование кавычек.

Если же он не поможет, то тебе придется ,все же, сделать то, что я написал в начале
 

stepby

Новичок
Спасибо за ответ!

Оказывается что поле типа text не достаточно для сохранния файлов в бинарном виде таких как .doc и т.д.


Установка поля вида LONGTEXT решило мою проблему.


Еще раз благодарю!
 

Фанат

oncle terrible
Команда форума
Ты хотел сказать, наверное, не "поле типа text не достаточно", а "я, проектируя базу, не подумал о размере данных и о соответствующем размере полей".

А поле-то, как раз, типа текст, ПРЕКРАСНО подходит для сохранния файлов в бинарном виде таких как .doc и т.д.

Учись грамотно выражать свои мысли, чтобы над тобой не смеялись.
 
Сверху