2012-04-16 2 views
0

나는 phpmailer를 통해 이메일 메시지와 첨부 파일을 보내는 간단한 페이지를 가지고 있습니다. 나는 어떤을 위해 다음과 같은 루프를 사용하여 메신저, 동시에 서버 O를이 파일을 보낼 수있는 전자 메일 메시지에 여러 첨부 파일을 첨부하고도 업로드 할 수 있습니다 내가 기능을 사용할 때첨부 파일을 폴더로 이동하고 이메일 첨부하기

$MyUploads = array(); 

foreach(array_keys($_FILES['attach']['name']) as $key) 
{ $Location="uploads/"; 

$name=$_FILES['attach']['name'][$key]; 
$filePath = $Location . $name; 
$source = $_FILES['attach']['tmp_name'][$key]; // location of PHP's temporary file for 
$tmp=$_FILES['attach']['tmp_name'][$key]; 

if($mail->AddAttachment($source, $name)) 
    {if(move_uploaded_file($tmp, $filePath)){ 
$MyUploads[] = $filePath;} 
else 
{$MyUploads[]=''; 
echo "not uploaded";} 
} 
} 

문제이며, move_uploaded_file() 파일은 서버 폴더에 업로드되지만 첨부 파일과 함께 전송되지는 않습니다. 이 기능을 주석 처리하면 첨부 파일이 발송됩니다.

이 두 dnt가 함께 작동하는 이유를 찾을 수 없습니까? 제발 도와주세요

+0

관련 : 내가 다른 하나가 이것에 의해 도움이 될 수 있기를 바랍니다 [데이터베이스에서 이미지를 검색하고 페이지에 모두 표시] (http://stackoverflow.com/questions/10196929/retrieving-images-from- 데이터베이스 및 페이지 모두 표시) – hakre

답변

0

다음은 첨부 파일을 보내고 추가 경로로 대상 경로로 이동하는 루프입니다.

$MyUploads = array(); 
$numFiles = count(array_filter($_FILES['attach']['name'])); 

for ($i = 0; $i < $numFiles; ++$i) { 
    $target_path = 'uploads/' . basename($_FILES['attach']['name'][$i]); 
    if(move_uploaded_file($_FILES['attach']['tmp_name'][$i], $target_path)) { 
     echo "the file ".basename($_FILES['attach']['name'][$i])." has been uploaded<br />"; 
     $MyUploads[] = $target_path; 
     echo $MyUploads; 
     $mail->AddAttachment($target_path); 
    } 
} 
관련 문제