@soledar10
html css3 js jquery

Почему в письмо прикрепляется только 1 файл?

Здраствуйте! В письмо прикрепляется только 1 файл, необходимо 2 и более файлов

Подскажите, что не так делаю.

Обработчик

<?
 $files = array();

$mailto = "soledar10@meta.ua";
$charset = "utf-8";
$subject = "Заявка на консультацию";
$content = "text/html";
$status="<br>";

if (!empty($_POST)){
   $fname = htmlspecialchars($_POST["fname"]);
   $mail = htmlspecialchars($_POST["mail"]);
   $phone = htmlspecialchars($_POST["phone"]);   
   $city = htmlspecialchars($_POST["city"]);
   $selectrost = htmlspecialchars($_POST["selectrost"]);
   $txt = htmlspecialchars($_POST["txt"]);
   $figure = htmlspecialchars($_POST["figure"]);   
   //$picture = "";  
   
   
   if(empty($_POST['mail'])){
	  $status = "Вы не указали свой E-mail!";
   }
   elseif (!preg_match("/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+([0-9A-Z]){2,4}$/i i", $mail)){
	  $status = "Вы ввели некорректный адрес";
   }
   else{	   
	   $headers .= "MIME-Version: 1.0\r\n";
	   $headers .= "From: \"".$fname."\" <".$mail.">\r\n";
	   $headers .= "Bcc: soledar10@meta.ua\r\n";
	   $headers .= "X-Mailer: E-mail from my super-site \r\n";
	   $sendmessage = "\nИмя:$fname <br> \nEmail:$mail <br> \nТелефон:$phone <br> \nГород:$city <br> \nРост:$selectrost <br> \nДополнительная информация:$txt <br> \nТип фигуры:$figure";
	   
	     
		  for($i=0; $i < count($_FILES['file']['tmp_name']); $i++) {
			  if (!empty($_FILES['file']['tmp_name'][$i])){ 				
				$path = $_FILES['file']['name'][$i];
				if (copy($_FILES['file']['tmp_name'][$i], $path)) array_push($files, $path);         
			   }            
		  }
		  if(empty($files)){			  
			   $headers .= "Content-Type: ".$content." charset=".$charset."\r\n";
				  if (mail($mailto,$subject,$sendmessage,$headers)){
					 $status = "Ваше сообщение отправлено!";
				 }		 
				  else{
					 $status = "По техническим причинам сообщение не было отправлено. Попробуйте снова, а если не получится, обратитесь к разработчикам";
				  }		
		  }
		  else{			
				
		  $semi_rand = md5(time());
          $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";	      			
		  $headers .="Content-Type: multipart/mixed;  boundary=\"{$mime_boundary}\"\r\n";	      
		  $multipart .= "--{$mime_boundary}\r\n";			  
	      $multipart .= "Content-Type: text/html; charset=$charset\r\n";
	      $multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
	      $multipart .= "$sendmessage\n\n";		  
		  
		  foreach($files as $fp => $path) {		   
			   $fp = fopen($path,"r");
				  if (!$fp){
					  print "Файл ".$path." не может быть прочитан";				
					  exit();
				  }
				$file = fread($fp, filesize($path));
				fclose($fp);	    
				  
				  $message_part = "--{$mime_boundary}\r\n";			  				  		
				  $message_part .= "Content-Type: application/octet-stream; name = " .$path."\r\n";
				  $message_part .= "Content-Transfer-Encoding: base64\r\n";
				  $message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";				  
				  $message_part .= chunk_split(base64_encode($file))."\r\n";				
            
			    }
				
			  $multipart .= $message_part."--{$mime_boundary}\r\n";				  
			
		  }   	   
			
	      if(!mail($mailto, $subject, $multipart, $headers)) $status = "По техническим причинам сообщение не было отправлено. Попробуйте снова, а если не получится, обратитесь к разработчикам";
	      else $status = "<p style='color:#36E186; text-align:center; font-size:20px;'>Ваше сообщение отправлено!</p>";  
	   	
   }     
}

?>

<?=$status;?>


form

<form id="form" action="php/form.php" method="post" enctype="multipart/form-data">	

					<ul>
						<li class="form-left">
							<div class="form-left-item"><label>&nbsp;</label><input type="text" name="fname" placeholder="ФИО" /></div>
							<div class="form-left-item"><label>&nbsp;</label><input type="text" name="mail" placeholder="Email" /></div>
							<div class="form-left-item"><label>&nbsp;</label><input type="text" name="phone" placeholder="Телефон" /></div>
							<div class="form-left-item"><label>&nbsp;</label><input type="text" name="city" placeholder="Город" /></div>
							<div class="form-left-item">
								<select name="selectrost">
									<option value="-1">Рост</option>
									<option value="150 см">150 см</option>
									<option value="151 см">151 см</option>
									<option value="152 см">152 см</option>
									
								</select>
							</div>
							<div class="form-left-item"><label>&nbsp;</label><textarea name="txt" placeholder="Дополнительная информация"></textarea></div>
							
							<div class="form-left-item" id="fileupload">								
								<div id="drop-files" class="file_upload" ondragover="return false">									
									<button type="button">Обзор...</button>
									<div>Прикрепить фото</div>
									<label>&nbsp;</label>
									<input type="file" name="file[]" id="uploadbtn" multiple title="Загрузите одну или несколько фотографий" />
								</div>
								
								<!-- preview. begin -->
								<div id="uploaded-holder"> 
									<div id="dropped-files">
										<!-- btn upload, btn delete -->
										<div id="upload-button">
											<ul>
												<li><span>0 Файлов</span>
												<li><a href="#" class="upload">Загрузить</a>
												<li><a href="#" class="delete">X</a>
											</ul>	
												
											<!-- progress bar -->
											<div id="loading">
												<div id="loading-bar">
													<div class="loading-color"></div>
												</div>
												<div id="loading-content"></div>
											</div>											
										</div>  
									</div>
								</div>
								<!-- preview. end-->
								<!-- list file -->
								<div id="file-name-holder">
									<ul id="uploaded-files">
										<p>Загруженные файлы</p>
									</ul>
								</div>								
								<p style="color:#959595; clear:both;"><span style="color:#f00;">*</span>рекомендации по цвету даются только при наличие фотографии</p>
							</div>
						
						<li class="form-right">
						
							<div class="figure">
								<h3>Выберите тип фигуры</h3>
								
								<div class="figure-item">
									<h4>Типы женских фигур:</h4>
									
									<ul>
										<li><input id="r1" type="radio" name="figure" value="Женская А Груша" checked /><label for="r1"><span class="f f1"></span> А <br> Груша</label>
										<li><input id="r2" type="radio" name="figure" value="Женская Х Песочные часы"  /><label for="r2"><span class="f f2"></span> Х <br>Песочные <br> часы</label>										
										<li><input id="r3" type="radio" name="figure" value="Женская Н Прямоугольник" /><label for="r3"><span class="f f3"></span> Н <br> Прямоугольник</label>
										<li><input id="r4" type="radio" name="figure" value="Женская V Перевернутый треугольник" /><label for="r4"><span class="f f4"></span> V <br> Перевернутый <br> треугольник</label>
										<li><input id="r5" type="radio" name="figure" value="Женская О Яблоко" /><label for="r5"><span class="f f5"></span> О <br> Яблоко</label>
									</ul>
								</div>
								
								<div class="figure-item figure-item-man">
									<h4>Типы мужских фигур:</h4>
									
									<ul>
										<li><input id="r6" type="radio" name="figure" value="Мужская Трапеция" /><label for="r6"><span class="f f6"></span> Трапеция</label>
										<li><input id="r7" type="radio" name="figure" value="Мужская Прямоугольник" /><label for="r7"><span class="f f7"></span> Прямоугольник</label>										
										<li><input id="r8" type="radio" name="figure" value="Мужская Треугольник" /><label for="r8"><span class="f f8"></span> Треугольник</label>
										<li><input id="r9" type="radio" name="figure" value="Мужская Овал" /><label for="r9"><span class="f f9"></span> Овал</label>										
									</ul>
								</div>
							</div>
					</ul>
					
					
					<button type="submit">ОТПРАВИТЬ</button>
					
					<p class="reply">Ответ с рекомендациями стилиста придет вам на почту в течение 24х часов.</p>
					
				</form>


Спасибо
  • Вопрос задан
  • 451 просмотр
Решения вопроса 1
@mzabil
for($i=0; $i < count($_FILES['file']['tmp_name']);$i++) {
      if (!empty($_FILES['file']['tmp_name'][$i])){	
        //$uploaddir = '/www/layout/conn3/uploader/';
        $path = $_FILES['file']['name'][$i];
        if (copy($_FILES['file']['tmp_name'][$i], $path)) $picture = $path;		 
       }			
     }

Из этого куска мне не очень понятно куда вы копируете файлы....
И в $path у вас последний загруженный файл. Который вы потом и отправляете.

Я бы написал так:

$files = array();
  for($i=0; $i < count($_FILES['file']['tmp_name']);$i++) {
      if (!empty($_FILES['file']['tmp_name'][$i])){ 
        //$uploaddir = '/www/layout/conn3/uploader/';
        $path = $_FILES['file']['name'][$i];
        if (copy($_FILES['file']['tmp_name'][$i], $path)) array_push($files, $path);         
       }            
  }
  if(empty($files)){
      //отправить без вложений
  }else{
    foreach($files as $f) {
        //что то делать
    }
  }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ashlst
@Ashlst
Фанат эстетики и красивых решений.
Покажите,код,Вашей,формы,пожалуйста.
Ответ написан
Ваш ответ на вопрос

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

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