2012-04-16 12 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()、ファイルはサーバーフォルダにアップロードされますが、添付ファイルは送信されません。この機能をコメントアウトすると、添付ファイルが送信されます。

これらの2つの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); 
    } 
} 
関連する問題