За последние 24 часа нас посетили 15066 программистов и 1753 робота. Сейчас ищут 1475 программистов ...

Проблема с загрузкой нескольких файлов на емаил

Тема в разделе "Работа с почтой", создана пользователем NeverDie, 14 июл 2011.

  1. NeverDie

    NeverDie Активный пользователь

    С нами с:
    26 янв 2011
    Сообщения:
    5
    Симпатии:
    0
    Pдравствуйте! Пишу скрипт формы обратной связи с несколькими аттачами. Проблема связана с файлами. Данный скрипт их получает, но на емаил файлы приходят или пустые или не приходят вообще. Помогите, пожалуйста. Я несколько дней сижу и уже не понимаю, с чем может быть связано.
    PHP:
    PHP:
    1. $fileElementName = 'fileToUpload';
    2. $max_file_size = 50*1024*1024;
    3. $hasFile = 0;
    4. $filesCount = sizeof($_FILES[$fileElementName]["name"]);
    5.  
    6. if(!empty($_FILES[$fileElementName]['tmp_name'][0])){
    7.     for ($i = 0; $i < $filesCount-1; $i++) {   
    8.         if(filesize($_FILES[$fileElementName]['tmp_name'][$i]) > $max_file_size){
    9.             echo '<p style = "color:#fff">Max file size : 50mb</p>';
    10.             die();
    11.          }
    12.         else{
    13.             $hasFile = 1;
    14.         }      
    15.     }
    16. }
    17.  
    18. $to ="never_die@tut.by";
    19. $name = $_POST['userName'];
    20. $from = $_POST['userEmail'];
    21. $subj = $_POST['userSubject'];
    22. $text = $_POST['userMessage'];
    23.  
    24.     $boundary = '--'.md5(uniqid(time()));
    25.     $head = "MIME-Version: 1.0\r\n";
    26.     $head .= "X-Mailer: PHPMail Tool\r\n";
    27.     $head .= "X-Priority: 3\r\n";
    28.     $head .= "From:". $name."\n";
    29.     $head .= "To: ".$to."\n";
    30.     $head .= "Subject: ".$subj."\n";
    31.     $head .= "Reply-To: ".$from."\n";
    32.     $head .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"\r\n";
    33.    
    34.     $msg  = "--".$boundary."\r\n";  
    35.    
    36.     $msg .= "".$text."\r\n";
    37.     $msg .= "Content-Type:text/plain; charset=windows-1251\r\n";
    38.     $msg .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
    39.    
    40.     if($hasFile == 1){
    41.         for($i = 0; $i < $filesCount-1; $i++) {
    42.             $msg .= "--".$boundary."\r\n";
    43.             $file[$i] = fopen($_FILES[$fileElementName]['tmp_name'][$i],"rb");
    44.             $msg .= chunk_split(base64_encode(fread($file[$i], $_FILES[$fileElementName]['size'][$i])));
    45.             $msg .= "Content-Type: application/octet-stream; name=\"".$_FILES[$fileElementName]['name'][$i]."\"\r\n";
    46.             $msg .= "Content-Disposition: attachment; filename=\"".$_FILES[$fileElementName]['name'][$i]."\"\r\n";
    47.             $msg .= "Content-Transfer-Encoding: base64\r\n\r\n";
    48.            
    49.         }
    50.     }
    51.     $msg .= "--".$boundary."--";
    52.     if (mail($to, $subj, $msg, $head) )
    53.         echo '<p style = "color:#fff">Thank you for your message!</p>';
    54.     else
    55.         echo '<p style = "color:#fff">You message didnt send!</p>';
    56.  
    [/php][/code]
     
  2. Geranin86

    Geranin86 Активный пользователь

    С нами с:
    21 авг 2011
    Сообщения:
    3
    Симпатии:
    0
    Адрес:
    Украина, Донецк
    Разве не лучше пользоваться уже готовыми решениями?