Отправить электронное письмо после загрузки файлов - PullRequest
0 голосов
/ 29 августа 2018

Я работаю над сценарием загрузки нескольких файлов, и я хочу получать предупреждения, когда пользователи загружают некоторые файлы. Вот мой код для загрузки:

if(isset($_POST['submit_image'])){
   for($i=0;$i<count($_FILES["upload_file"]["name"]);$i++){
    $uploadfile=$_FILES["upload_file"]["tmp_name"][$i];
    $folder="galerie/evg/";

    move_uploaded_file($_FILES["upload_file"]["tmp_name"][$i], "$folder".$_FILES["upload_file"]["name"][$i]);

    $to = "benoit@lalilou.com";
    $subject = "Nouvelles photos uploadées";
    $message = "
        <html>
            <head>
                <title>".$userRow['user_firstname']." a uploadé de nouvelles photos.</title>
            </head>
            <body>
                ".$userRow['user_firstname']." a uploadé de nouvelles photos.
                ".$_FILES["upload_file"]["name"][$i]."
                <br/>
                <br/>
            </body>
        </html>
    ";
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
    $headers .= 'From: <webmaster@lalilou.com>' . "\r\n";

}
mail($to,$subject,$message,$headers);
exit();}

Моя проблема: Я получаю письмо, но в сообщении у меня загружен только последний файл. И если я включаю функцию mail в цикл for, я получаю 2 или 3 письма в зависимости от количества загруженных картинок.

Мой вопрос: Какой правильный способ сделать это?

Заранее спасибо:)

**** ***** EDIT 1016 * Благодаря @menaka Вот рабочий финальный код для тех, кто ищет: if(isset($_POST['submit_image'])){ $to = "benoit@lalilou.com"; $subject = "Nouvelles photos uploadées"; $message = " <html> <head> <title>".$userRow['user_firstname']." a uploadé de nouvelles photos.</title> </head> <body>".$userRow['user_firstname']." a uploadé de nouvelles photos.<br/>"; for($i=0;$i<count($_FILES["upload_file"]["name"]);$i++){ $uploadfile=$_FILES["upload_file"]["tmp_name"][$i]; $folder="galerie/evg/"; move_uploaded_file($_FILES["upload_file"]["tmp_name"][$i], "$folder".$_FILES["upload_file"]["name"][$i]); $message .= "<img style='width:200px;' src='http://exemple.com/galerie/".$_FILES["upload_file"]["name"][$i]."' />"; } $message .= "<br/> <br/> </body> </html> "; $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; $headers .= 'From: <webmaster@lalilou.com>' . "\r\n"; mail($to,$subject,$message,$headers); exit();}

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Думаю, проблема в том, что вы просто продолжаете заменять последнее сообщение в цикле, попробуйте вот так.

if(isset($_POST['submit_image'])){

    $to = "benoit@lalilou.com";
    $subject = "Nouvelles photos uploadées";
    $message =  "
        <html>
            <head>
                <title>".$userRow['user_firstname']." a uploadé de nouvelles photos.</title>
            </head>
            <body>";

   for($i=0;$i<count($_FILES["upload_file"]["name"]);$i++){
    $uploadfile=$_FILES["upload_file"]["tmp_name"][$i];
    $folder="galerie/evg/";

    move_uploaded_file($_FILES["upload_file"]["tmp_name"][$i], "$folder".$_FILES["upload_file"]["name"][$i]);


    $message .= $userRow['user_firstname']." a uploadé de nouvelles photos.
                ".$_FILES["upload_file"]["name"][$i];


}

$message .= "<br/>
                <br/>
            </body>
        </html>
    ";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= 'From: <webmaster@lalilou.com>' . "\r\n";

mail($to,$subject,$message,$headers);
exit();}
0 голосов
/ 29 августа 2018

Вы должны загрузить каждый файл и добавить его в заголовок файла. Я думаю, что ответит на ваш вопрос: Как прикрепить два или несколько файлов и отправить почту в PHP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...