【问题标题】:PHPMAILER trying to make image input multiplePHPMAILER 试图使图像输入多个
【发布时间】:2020-10-14 15:30:42
【问题描述】:

我正在尝试进行输入,用户可以在邮件中选择多个图像。

我遇到了一个需要帮助的错误:

Warning: count(): Parameter must be an array or an object that implements Countable in 

HTML:

<form class="contact-form" action="contactform.php" method="post" enctype="multipart/form-data">

                <input type="file" class="file" name="image[]" id="image[]" multiple/>
   </form>
for($ct=0;$ct<count($_FILES['image']['tmp_name']);$ct++)
{
    $uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['image']['name'][$ct]));
    $filename =$_FILES['image']['name'][$ct];
    if (move_uploaded_file($_FILES['image']['tmp_name'][$ct], $uploadfile)) {
        $mail->addAttachment($uploadfile, $filename);
    }

}

【问题讨论】:

    标签: php html forms email


    【解决方案1】:

    在运行for 循环之前使用is_array() (Documentation) 限定您的数组值:

    if(is_array($_FILES['image']['tmp_name'])){
        for($ct=0;$ct<count($_FILES['image']['tmp_name']);$ct++){
           ...
           ...
        }
    }
    

    我假设您还已经检查了每个上传的错误代码,并且您有一个 else,如果给定的数据不是数组,您需要做什么。

    另外请注意,您的 id 标记对于 HTML4 无效。必须在名称中引用带有方括号的 id 标记似乎很尴尬,我建议从 id 中删除括号。

    ID 标记必须以字母 ([A-Za-z]) 开头,后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 ("_" )、冒号 (":") 和句点 (".")。

    Source.

    【讨论】:

      猜你喜欢
      • 2021-12-20
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 1970-01-01
      • 2019-03-31
      • 2020-12-28
      • 2021-03-21
      • 1970-01-01
      相关资源
      最近更新 更多