Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » как реализовать множественное прикрепление файлов?

как реализовать множественное прикрепление файлов?


     08.04.2020    Общие вопросы, Общие вопросы по PHP, Ламерские вопросы    760

вопрос
Добрый день! Как реализовать в форме обратной связи, множественную отправку файлов на почту, а не 1 как это сейчас?
<?php

if( !defined('DATALIFEENGINE') ) {
    header( "HTTP/1.1 403 Forbidden" );
    header ( 'Location: ../../' );
    die( "Hacking attempt!" );
}

    $response = $_POST["g-recaptcha-response"];
    $url = 'https://www.google.com/recaptcha/api/siteverify';
    $data = [
        'secret' => 'СЕКРЕТНЫЙ_КЛЮЧ_Recapcha',
        'response' => $_POST["g-recaptcha-response"]
    ];
    $options = [
        'http' => [
            'method' => 'POST',
            'content' => http_build_query($data)
        ]
    ];
    $context  = stream_context_create($options);
    $verify = file_get_contents($url, false, $context);
    $captcha_success=json_decode($verify);
    
    if ($captcha_success->success==true) {
        
        include_once (DLEPlugins::Check(ENGINE_DIR . '/classes/mail.class.php'));
        include ENGINE_DIR . '/data/config.php';

        $mail = new dle_mail( $config, $is_html = true );
        
        $name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
        $org = filter_input(INPUT_POST, 'org', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
        $phone = filter_input(INPUT_POST, 'phone', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
        $adress = filter_input(INPUT_POST, 'adress', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
        $assembling = filter_input(INPUT_POST, 'assembling', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
        $cover = filter_input(INPUT_POST, 'cover', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
        $message = filter_input(INPUT_POST, 'message', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);

        $body = "Имя: {$name}<br>";
        $body .= "Организация: {$org}<br>";
        $body .= "Телефон: {$phone}<br>";
        $body .= "Адрес: {$adress}<br>";
        if($assembling == '1') { $body .= "Монтаж: Требуется<br>"; }
        if($cover == '1') { $body .= "Резиновое покрытие: Требуется<br>"; }
        if(strlen($message) > 1) { $body .= "<br>Сообщение: {$message}"; }
       [color=#CC0000][b] if(!empty( $_FILES['file']['tmp_name'] ) and $_FILES['file']['error'] == 0 ) {
            $mail->addAttachment($_FILES['file']['tmp_name'], $_FILES['file']['name']);[/b][/color]
        }
        
        $mail->send($config['admin_mail'], "Форма заказа с сайта", $body);

    }

?>
заранее спасибо!

Ответа пока нет


3 комментария

lutskboy
Эксперт

lutskboy - 9 апреля 2020 11:58 -

используйте стандартный feedback

Flash
Эксперт

Flash - 9 апреля 2020 19:15 -

В форме:
<input name="file[]" type="file" multiple="multiple" />


В обработчике меняем строки:
if(!empty( $_FILES['file']['tmp_name'] ) and $_FILES['file']['error'] == 0 ) {
	$mail->addAttachment($_FILES['file']['tmp_name'], $_FILES['file']['name']);[/b][/color]
}


на:
$total = count($_FILES['file']['name']);
for ($i = 0; $i < $total; $i++) {
	$mail->addAttachment($_FILES['file']['tmp_name'][$i], $_FILES['file']['name'][$i]);
}


Не проверял.

819836
Юзер

819836 - 9 апреля 2020 20:54 -

Flash, все работает, спасибо

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

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

наверх