2017-08-26 86 views
-1

脚本工作,但只发送一个附件。我似乎无法弄清楚我做错了什么。它会发送第一附着$ userfile的[ '名称'] [0],而不是userfile的$ [ '名'] [1]发送多个附件PHP imap只发送1个附件

$i = 0; 
    foreach($_FILES as $userfile){ 
     $tmp_name = $userfile['tmp_name'][$i]; 
     $type = $userfile['type'][$i]; 
     $name = $userfile['name'][$i]; 
     $size = $userfile['size'][$i]; 
      $i++; 
} 

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" 
    enctype="multipart/form-data" name="form1"> 
<input type="file" name="file[]" multiple /> 

原来的代码是从这里:How to attach two or multiple files and send mail in PHP

+0

这不是附件发送代码。如果您需要任何有用的帮助,请提供完整的代码 –

+0

您只是想以错误的方式获取文件。看到我的答案。您应该在其中指定文件数组名称。 –

回答

1

更改文件名到userfile的[],那么应该是这样的:

应该是这样的:

$count_uploaded_files = count($_FILES['userfile']['name']); 

for($i = 0; $i < $count_uploaded_files; $i++) 
{ 
    $tmp_name = $_FILES['userfile']['tmp_name'][$i]; 
    $type  = $_FILES['userfile']['type'][$i]; 
    $name  = $_FILES['userfile']['name'][$i]; 
    $size  = $_FILES['userfile']['size'][$i]; 

    // Do whatever you want with $temp_name, $type, $name, and $size ... 
} 

但是如果你想留在文件[]。那么像这样:

$count_uploaded_files = count($_FILES['file']['name']); 

for($i = 0; $i < $count_uploaded_files; $i++) 
{ 
    $tmp_name = $_FILES['file']['tmp_name'][$i]; 
    $type  = $_FILES['file']['type'][$i]; 
    $name  = $_FILES['file']['name'][$i]; 
    $size  = $_FILES['file']['size'][$i]; 

    // Do whatever you want with $temp_name, $type, $name, and $size ... 
} 
+0

第二个选项有效。谢谢。 – user1282355