@gogadesign

Как правильно отобразить прикрепленный файл?

Все изображения, прикрепляемые через данную форму, приходят с приставкой: Content-Transfer-Encoding_base64Content-Disposition_attachment.

Помогите, пожалуйста, указать на ошибку.

Код:
<?
// Проверим гугл каптчу, отправим POST запрос гуглу и получим результат
$gipadress=$_SERVER['REMOTE_ADDR'];
$grecaptcha=$_POST['g-recaptcha-response']; 
$postdata = http_build_query(
  array(
    'secret' => 'мой ключ',
    'response' => $grecaptcha,
    'remoteip' => $gipadress
  )
);
$opts = array('http' =>
  array(
    'method'  => 'POST',
    'header'  => 'Content-type: application/x-www-form-urlencoded',
    'content' => $postdata
  )
);

$gcontents = stream_context_create($opts);

$gresults = file_get_contents('https://www.google.com/recaptcha/api/siteverify', false, $gcontents);

$jsonresults = json_decode($gresults);      

if ($jsonresults->{'success'}===false ) {  
  // the code was incorrect  
    print "<font color=\"red\">Ошибка: введен неправильный проверочный код!</font><br /><br />";
} 
else if ($jsonresults->{'success'}=== true )
{
    if (isset ($_POST['contactFF'])) {
      $to = "моя почта"; // поменять на свой электронный адрес
      $from = $_POST['contactFF'];
      $subject = "Заполнена контактная форма с ".$_SERVER['HTTP_REFERER'];
      $message = "Имя: ".$_POST['nameFF']."\nEmail: ".$from."\nIP: ".$_SERVER['REMOTE_ADDR']."\nСообщение: ".$_POST['messageFF'];
      $boundary = md5(date('r', time()));
      $filesize = '';
      $headers = "MIME-Version: 1.0\r\n";
      $headers .= "From: " . $from . "\r\n";
      $headers .= "Reply-To: " . $from . "\r\n";
      $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
      $message="
    Content-Type: multipart/mixed; boundary=\"$boundary\"

    --$boundary
    Content-Type: text/plain; charset=\"utf-8\"
    Content-Transfer-Encoding: 7bit

    $message";
      for($i=0;$i<count($_FILES['fileFF']['name']);$i++) {
         if(is_uploaded_file($_FILES['fileFF']['tmp_name'][$i])) {
             $attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'][$i])));
             $filename = $_FILES['fileFF']['name'][$i];
             $filetype = $_FILES['fileFF']['type'][$i];
             $filesize += $_FILES['fileFF']['size'][$i];
             $message.="

    --$boundary
    Content-Type: \"$filetype\"; name=\"$filename\"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment; filename=\"$filename\"

    $attachment";
         }
       }
       $message.="
    --$boundary--";

      if ($filesize < 10000000) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ
        mail($to, $subject, $message, $headers);
        echo $_POST['nameFF'].', Ваше сообщение получено, спасибо!';
      } else {
        echo 'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.';
      }
    }
}
?>
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы