Задать вопрос
@kir_vesp
Web Developer

Почему приходит битый pdf-файл при пересылке средствами php?

Здравствуйте, пол-дня бьюсь над задачей. Имеется исходный pdf-файл на моём сайте, его надо отправить прикреплённым к письму. Файл находит, открывает, считывает, но при попытке открыть полученный файл adobe reader ругается, что файл повреждён или не был декодирован etc.
Проверил файл с сайта- чистый, работающий. Подскажите, что не так делаю?
P.S. chunk_split() ставил, просто в этой версии уже без него пробую. Разницы нет. Исходный файл 56 кб, полученный- 80(78 без chunk)кб
<?php 
$to  = "penzin@smartlime.ru" ;  

$subject = "Подтверждение заказа"; 

//$message = file_get_contents('../files/accept_'.$_POST['id'].'.php');


$file=fopen('../files/orderpdf_'.$_POST['id'].'.pdf','rb');
$name='../files/orderpdf_'.$_POST['id'].'.pdf';
$attachment=fread($file, filesize($name));
fclose($file);
$attachment=base64_encode($attachment);


unlink('../files/orderpdf_'.$_POST['id'].'.pdf');



$headers  = "MIME-Version: 1.0 \r\n";
$headers .= "Content-Type: multipart/mixed; boundary=pdfnik \r\n";
$headers .= "charset=utf-8 \r\n";
$file= basename('../files/orderpdf_'.$_POST['id'].'.pdf');


$body  = "--pdfnik\n";   
$body .= "Content-Type: application/octet-stream; ";
$body .= "name=".basename('../files/orderpdf_'.$_POST['id'].'.pdf')."\n";
$body .= "Content-Transfer-Encoding:base64n\n";
$body .= "Content-Disposition:attachment; filename=\"$file\"\n\n";
$body .= $attachment;
$body .= "pdfnik--\n";

mail($to, $subject, $body, $headers); 
?>
  • Вопрос задан
  • 3757 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
AloneCoder
@AloneCoder
[object Object]
В конце опечатка, должно быть так
body .= "Content-Transfer-Encoding:base64\n\n";
Ответ написан
svfat
@svfat
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
$body .= "Content-Transfer-Encoding: base64\r\n";
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы