HTML — как прикрепить несколько файлов с помощью php с грушей mail.php и mime.php?

Я не могу прикрепить несколько файлов. Если я вложил файл больше, чем файл, электронная почта отправляет всегда 1 файл вложения, но я прикрепляю больше, чем файл.

if(isset($_POST['upload'])){
include('config.php');
include_once('Mail.php');
include_once('Mail/mime.php');
$allowed_ext    = array('jpg','bmp','gif','png','jpeg');
for($i=0; $i<count($_FILES['file']['name']); $i++) {
$file_name      = $_FILES['file']['name'][$i];
$file_ext       = strtolower(end(explode('.', $file_name)));
$file_size      = $_FILES['file']['size'][$i];
$file_tmp       = $_FILES['file']['tmp_name'][$i];
$username       = $_POST['username'];
$judul          = $_POST['judul'];
$berita         = $_POST['berita'];
$max_size       = 25*1024*1024;
$tanggal_kirim  = date("Y-m-d H:i:s");
if(in_array($file_ext, $allowed_ext) === true){
if($file_size <= $max_size){
$file_path = "foto/". $_FILES['file']['name'][$i];
move_uploaded_file($file_tmp, "$file_path");}
mysql_query("INSERT INTO foto VALUES('', '$username', '$tanggal_kirim', '$judul', '$berita','0')");
}
$query = "SELECT email,password_email FROM users where username='$username'";
$sql = mysql_query($query);
$data = mysql_fetch_assoc($sql);

$subject = $judul;
$body = $berita;
//mail($to, $subject, $body,$headers);
//email tujuan
$to = "[email protected]";
$host = "ssl://smtp.gmail.com";
$port = "465";
$from = $useremail = $data['email'];
$password = $data['password_email'];

$headers = array('From' => $from, 'To' => $to, 'Subject' => $subject);

$namafile[$i] = "$file_path/$file_name";
$crlf = "\n";
$mime = new Mail_mime($crlf);
$mime->setTXTBody($body);
$mime->addAttachment($namafile[$i],'image/jpg');

$body = $mime->get();
$headers = $mime->headers($headers);

$smtp = Mail::factory('smtp', array('host' => $host,
'port' => $port, 'auth' => true,
'username' => $useremail, 'password' => $password));

$mail = $smtp->send($to, $headers, $body);
if($mail){
echo '<div class="ok">SUCCESS: Foto terkirim!</div>';
}else{
echo '<div class="error">ERROR: Foto gagal dikirim!</div>';
}
}
}

что не так с моим кодом? Помогите мне, пожалуйста. дайте мне разрешение …. спасибо вам ….. извините за мой английский, я из Индонезии. так что просто говорите по-английски. СРЮ ….

0

Решение

я очень быстро перестроил код, никаких гарантий на это нет:

<?php

if(isset($_POST['upload'])){
include ('config.php');
include_once ('Mail.php');
include_once ('Mail/mime.php');
$allowed_ext = array('jpg','bmp','gif','png','jpeg');$query = "SELECT email,password_email FROM users where username='$username'";
$sql = mysql_query($query);
$data = mysql_fetch_assoc($sql);

$subject = $judul;
$body = $berita;
//mail($to, $subject, $body,$headers);
//email tujuan
$to = "[email protected]";
$host = "ssl://smtp.gmail.com";
$port = "465";
$from = $useremail = $data['email'];
$password = $data['password_email'];

$headers = array('From'=>$from,'To'=>$to,'Subject'=>$subject);

$namafile[$i] = "$file_path/$file_name";
$crlf = "\n";
$mime = new Mail_mime($crlf);
$mime->setTXTBody($body);for($i = 0 ; $i<count($_FILES['file']['name']) ; $i++){
$file_name = $_FILES['file']['name'][$i];
$file_ext = strtolower(end(explode('.',$file_name)));
$file_size = $_FILES['file']['size'][$i];
$file_tmp = $_FILES['file']['tmp_name'][$i];
$username = $_POST['username'];
$judul = $_POST['judul'];
$berita = $_POST['berita'];
$max_size = 25*1024*1024;
$tanggal_kirim = date("Y-m-d H:i:s");
if(in_array($file_ext,$allowed_ext)===true){
if($file_size<=$max_size){
$file_path = "foto/".$_FILES['file']['name'][$i];
move_uploaded_file($file_tmp,"$file_path");
}
mysql_query("INSERT INTO foto VALUES('', '$username', '$tanggal_kirim', '$judul', '$berita','0')");
}

$mime->addAttachment($namafile[$i],'image/jpg');}$body = $mime->get();
$headers = $mime->headers($headers);

$smtp = Mail::factory('smtp',array('host'=>$host,'port'=>$port,'auth'=>true,'username'=>$useremail,'password'=>$password));

$mail = $smtp->send($to,$headers,$body);
if($mail){
echo '<div class="ok">SUCCESS: Foto terkirim!</div>';
}else{
echo '<div class="error">ERROR: Foto gagal dikirim!</div>';
}}
0

Другие решения

Я был решен самим собой. я могу сделать это….

if(isset($_POST['username']) && isset($_POST['judul']) &&
($_POST['berita']) ) {
include('config.php');
include_once('Mail.php');
include_once('Mail/mime.php');

$username       = $_POST['username'];
$judul          = $_POST['judul'];
$berita         = $_POST['berita'];
$tanggal_kirim  = date("Y-m-d H:i:s");

$query = "SELECT email,password_email FROM users where username='$username'";
$result = mysql_query($query);
list($useremail,$password) = mysql_fetch_row($result);
mysql_free_result($result);

$from = $useremail;
$subject = $judul;
$body = $berita;

$to = "[email protected]";
$host = "ssl://smtp.gmail.com";
$port = "465";

$crlf = "\n";
$headers = array('From' => $from, 'To' => $to, 'Subject' => $subject);

$mime = new Mail_mime($crlf);
$mime->setTXTBody($body);

$arr_files = array();
$file_path = "foto";
$file_count = 0;
for($i=0; $i<count($_FILES['fileAttach']['name']); $i++) {
$file_name = $_FILES['fileAttach']['name'][$i];
if(!empty($file_name)) {
$file_count++;
$file_ext       = strtolower(end(explode('.', $file_name)));
$file_tmp       = $_FILES['fileAttach']['tmp_name'][$i];
$file_target    = $file_path.'/'.$file_name.'';
$file_type      ="image/*";
move_uploaded_file($file_tmp, $file_target);
$arr_files[] = $file_target;
$mime->addAttachment($file_target,"image/".$file_ext, $file_type);
}
}
$body = $mime->get();
$headers = $mime->headers($headers);

$smtp = Mail::factory('smtp', array('host' => $host,
'port' => $port, 'auth' => true,
'username' => $useremail, 'password' => $password));

$mail = $smtp->send($to, $headers, $body);

if($mail){
mysql_query("INSERT INTO foto VALUES('', '$username', '$tanggal_kirim', '$judul', '$berita','$file_count')");
echo '<div class="ok">SUCCESS: Foto terkirim!</div>';
}else{
echo '<div class="error">ERROR: Foto gagal dikirim!</div>';
}
// sukses atopun gagal, tetap delete file
foreach($arr_files as $namafile) { unlink($namafile); }
}
0

По вопросам рекламы [email protected]