Bonsoir,
je cherche à réaliser une boucle sur mes pièces jointes mais je bloque.
J'ai cherché des tuto mais la majorité propose une seule pièce jointe ou de dupliquer le code...en ce qui me concerne j'aimerai réaliser si cela est possible une boucle.
form
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ... <p> Pièces jointes <input type="file" name="pj[]" accept="pdf, doc, docx, xls, xlsx, jpg, jpeg, png, gif, ppt" multiple=""></p> ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 <?php //.... public function sendMail($nom_expediteur, $mail_expediteur, $mail_replyto, $mail_destinataires, $bcc, $objet, $contenu, $files) { // générer la frontière entre contenu-html, pièces jointes $boundary = md5(uniqid(mt_rand())); //hearder du mail $headers = 'From: "' .$nom_expediteur.'" <'.$mail_expediteur.'>'."\n"; $headers .= 'Return-Path: <'.$mail_replyto.'>'."\n"; $headers .= 'MIME-Version: 1.0'."\n"; if ($bcc != '') { $headers .= "Bcc: ".$bcc. "\n"; } $headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\n"; $headers .= "\n"; //début de construction du message $message = ''; //partie du texte if ($contenu != ''){ $message .= '--'.$boundary."\n"; $message .= 'Content-type: text/plain; charset=utf-8'."\n"; $message .= 'Content-Transfer-Encoding: 8bit'."\n\n"; $message .= $contenu."\n\n"; } // JE VOUS MONTRE CE QUE ME RENVOIE MON VAR DUMP DE $files (mes pièces jointes = [] ) //var_dump($files); /* array (size=5) 'name' => array(size = 3) 0 => string 'nom du fichier 1.doc' 1 => string 'nom du fichier 2.xls' 2 => string 'nom du fichier 3.xls' 'type' => array(size = 3) 0 => application/msword' 1 => application/msword' 2 => application/sheet' 'tmp_name' => array(size = 3) 0 => string 'C:\wamp64\tmp\php1.tmp' 1 => string 'C:\wamp64\tmp\php2.tmp' 2 => string 'C:\wamp64\tmp\php3.tmp' 'error' => array(size = 3) 0 => int 0 1 => int 0 2 => int 0 'size' => array(size = 3) 0 => int 1000 1 => int 2000 2 => int 3000 */ foreach($files as $file => $name){ // A MODIFIER MAIS JE N'Y ARRIVE PAS CAR PLUSIEURS NIVEAUX $fichier = file_get_contents($name['tmp_name']); $content = chunk_split(base64_encode($fichier)); $message .= '--'.$boundary."\n"; $message .= 'Content-type:'.$name['type'].';name='.$name['name']."\n"; $message .= 'Content-transfer-encoding:base64'."\n"; $message .= $content."\n"; } $message .= '--'.$boundary."\n"; return mail($mail_destinataires, $objet, $message, $headers); } ?>
par la suite
$mail = new Mail();
$mailIsOK = $mail->sendMail($nom_expediteur, $mail_expediteur, $mail_replyto, $mail_destinataires, $bcc, $objet, $contenu, $files);
// je récupère des données de la SESSION OUVERTE pour $nom_expéditeur, $mail_expéditeur, $mail_replyto..
MERCI POUR VOTRE AIDE
Partager