【问题标题】:How to send mutiply file in a HTML form?如何以 HTML 表单发送多个文件?
【发布时间】:2021-01-11 14:50:03
【问题描述】:

我正在使用 Prestashop 1.6 为电子商务网站设计一个表单,我希望在这个表单中允许客户发送多张图片。

例如:客户因为收到了错误的产品而想要退回他的订单,但是客服需要包装的图片和有问题的证明,所以他需要上传他的图片,那么当客户点击提交,我想通过电子邮件作为附件发送。

我该如何继续?

<div class="box-container-1">
 <img src="http://dev.piscine-clic.com/img/icone-etat.svg" alt="photos">
  <label for="file">Envoyez nous des photos du matériel ainsi que de son emballage que
  vous souhaitez retourner</label>
<!-- INPUT pour envoyer les photos et preuves de retour -->
  <input class="file-button" type="file" id="file" name="file" multiple />
</div>

感谢大家以后的回复。

【问题讨论】:

标签: php html task-parallel-library prestashop smarty


【解决方案1】:

您的文件输入看起来正确。在服务器端,我建议使用PHPMailer 之类的类,然后像这样处理表单提交:

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    $mail = new PHPMailer(true);
         
    try {
        $mail->isSMTP();
        $mail->Host = 'host';
        $mail->Username = 'username';
        $mail->Password = 'password';
        
        $mail->setFrom($from);
        $mail->addAddress($to);
        $mail->Subject = $subject;
        $mail->Body = $body;
        
        $file_count = count($_FILES['file']['name']);
        
        if ($file_count) {

            for($i=0 ; $i < $file_count ; $i++) {
                if (file_exists($_FILES['file']['tmp_name'][$i]) && is_uploaded_file($_FILES['file']['tmp_name'][$i])) {
                    
                    $file_path = $_FILES['file']['tmp_name'][$i];
                    $file_name = pathinfo($_FILES['file']['name'][$i], PATHINFO_FILENAME);
                    $file_ext = strtolower(pathinfo($_FILES['file']['name'][$i], PATHINFO_EXTENSION));
                    
                    $mail->addAttachment($file_path, $file_name . '.' . $file_ext);
                }
            }
        }

        $mail->send();

    } catch (Exception $e) {
        echo $mail->ErrorInfo;
        exit;
    }
}

【讨论】:

  • @MatthieuIX 很高兴听到!请将问题标记为已解决!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-17
  • 2019-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多