Ich habe ein Skript (index.php), um eine Liste aller hinzugefügten Dateien von "Datei durchsuchen" zu erstellen. Und ich habe ein Skript (process.php), um alle Dateien auf der Liste per E-Mail mit phpmailer zu senden.Wie posten Sie alle Dateien in der Liste? | Jquery - PHP
Mein Problem ist, nur Datei (en) beim letzten Klick, der gesendet wurde. Datei (en), die zuvor nicht gesendet wurden.
index.php Skript
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
<form id="data" action="process.php" method="POST" enctype="multipart/form-data">
<input id="file" type="file" name="files[]" multiple="multiple"/>
<div id="output"><ul></ul></div>
<input type="submit" name="submit" value="OK">
</form>
</body>
<script>
$("#file").change(function() {
var ele = document.getElementById($(this).attr('id'));
var result = ele.files;
for(var x = 0; x < result.length; x++){
var file = result[x];
$("#output ul").append("<li>" + file.name + "</li>");
}
});
</script>
</html>
process.php Skript
<?php
require 'mail/PHPMailerAutoload.php';
$to = '[email protected]';
$subject = 'Test';
if(isset($_POST['submit'])){
$attachment_name = $_FILES['files']['name'];
$attachment_type = $_FILES['files']['type'];
$attachment = $_FILES['files']['tmp_name'];
include 'smtp.php';
$mail->addAddress($to);
$mail->Subject = $subject;
$mail->msgHTML('Tes');
foreach($attachment_name as $key => $att){
$nama_file = $attachment_name[$key];
$tmp_file = $attachment[$key];
$mail->addAttachment($tmp_file, $nama_file);
}
if (!$mail->send()) {
echo '<script>alert("Fail"); </script>';
} else {
echo '<script>alert("Success"); </script>';
}
}
?>
Vielen Dank für Ihre Antwort, werde ich es zuerst versuchen :) – Zhumpex
Wenn ich zwei aufeinanderfolgende Dateien auswählen, nur $ insgesamt einen Wert (eine Datei, nicht zwei Dateien) geben – Zhumpex
Oh, Sie brauchen multiple input tag – weigreen