2014-10-07 4 views
2

phpmailer 스크립트로 첨부 파일이있는 이메일을 보내는 데 문제가 있습니다. 메일에 하나의 파일을 추가하려면 작업 코드가 필요합니다. 그러나 여러 파일에 관해서는 업로드되지 않은 것처럼 보입니다. 하나의 파일에 대한파일을 업로드하기 전에 phpmailer로 파일을 보냅니 까?

내 코드 :

if (isset($_FILES['file']) && 
$_FILES['file']['error'] == UPLOAD_ERR_OK) 
{ 
$mail->AddAttachment($_FILES['file']['tmp_name'], 
        $_FILES['file']['name']); 

      if(!$mail->Send()) 
      { 
      header("Location: " . $returnErrorPage); 
      } 
      else 
      { 
      header("Location: " . $returnHomePage); 
      }    

}

나는 몇 가지 코드를 시도하는해야 성공없이 $ _FILES에있는 모든 파일을 반복. 그런 다음 다음 코드를 테스트했습니다.

$count = count($_FILES['file']['tmp_name']); 
echo $count; 

0을 반환합니다. $ _FILES는 비어 있지만 그 이유는 알지 못합니다. 파일을 버퍼링해야합니까?

편집

: 내 문제의 해결책이 싱크로에서 아이디어를 기반으로

<form id="form_907007" class="appnitro" method="post" action="server/phpmailer.php"  
enctype="multipart/form-data"> 
<p>Choose data (txt, html etc.):<br> 
<input name="file" type="file" size="50" maxlength="100000" multiple> 
</p> 
</form> 
+0

로그에 오류가 있습니까? –

+0

단일 오류가 아닙니다. – user3868224

+0

$ _FILES [ 'file'] 배열 항목이 어떻게 설정되거나 채워 집니까? 그 코드는 어디에 있습니까? 실제로 이것이 설정되고 있음을 확인 했습니까? –

답변

1

가 먼저 파일을 업로드 한 후 보내 : 여기 스크립트로 파일 및 기타 데이터를 전송 내 HTML 코드입니다 이메일.

<input name="file" type="file" size="50" maxlength="100000" multiple> 

<input name="file[]" type="file" size="50" maxlength="100000" multiple> 

당신이 PHP 이후에 업로드 할 각 파일에 도달하는이 작은 단계를 수행하는 것이 중요하다 : 내 HTML 코드에서

나는이 줄을 변경했다.

두 번째 단계는 모든 파일을 루프하여 서버에 저장합니다.

if(move_uploaded_file($tmp_name,"server/data/$name")) 
      { 
       $mail->AddAttachment("server/data/$name"); 
      } 

모든 경우 파일이 성공적으로 업로드하는 경우 반환하면 내가 메일에 첨부 파일로 추가 = TRUE, 체크 다음 단계에서

foreach ($_FILES["file"]["error"] as $key => $error){ 

if ($error == UPLOAD_ERR_OK) { 
    $tmp_name = $_FILES["file"]["tmp_name"][$key]; 
    $name = $_FILES["file"]["name"][$key]; 

move_uploaded_file($tmp_name," server/data/$name"} 

이는 것을 내가했던 방법입니다

if($mail->Send()){ 

    foreach ($_FILES["file"]["error"] as $key => $error) 
    { 
    $name = $_FILES["file"]["name"][$key]; 
    unlink("$name"); 
    } 

header("Location: " . $returnPage); 
exit;} 

모든 당신의 도움을 주셔서 감사합니다 : 내가 메일을 보내 파일을 후 을 삭제할 수 있습니다 잘 갔다!

관련 문제