簡體   English   中英

多個文件作為電子郵件附件上傳

[英]Multiple File Uploads As Email Attachments

在通過電子郵件將其作為附件發送之前,我會顯示文件。 我使用此腳本顯示文件

$(function(){
    var ul = $('#po_award p#file_1');

    $('#po_award').fileupload({
        add: function (e, data) {
            var tpl = $('<li class="dialog"><a style="color: #777777"></a></li>');

            tpl.find('a').text(data.files[0].name)
                .append('<a href="javascript:void(0)"><span style="color: red; float: right">Delete</span></a>');

            data.context = tpl.prependTo(ul);
            tpl.find('span').click(function(){
                if(tpl.hasClass('dialog')){
                    jqXHR.abort();
                }
                tpl.fadeOut(function(){
                    tpl.remove()
                });
            });
            var jqXHR = data.submit();
        },
    });
});

並且該腳本作為上面的索引和調用腳本

<html>
<head>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
    <form action="upload.php" id="form" method="post" enctype="multipart/form-data">
        <div class="fitem">
            <label style="width: 400px">Upload Files :</label>
        </div>
        <div class="fitem" style="float: left">
            <input style="width: 65px; height: 75px; float: right" class="easyui-filebox" name="attachment[]" multiple="true" buttonText="Add Files"/>
        </div>
        <div class="easyui-panel" style="width:440px;height:75px;padding:5px;margin-top:0px">
            <p id="file_1" style="list-style-type: none; margin-top: 0px"></p>
        </div><br>
    </form>

    <button type="submit" name="submit" form="form">Send</button>
</body>
</html>

這是upload.php腳本

<?php
require 'mail/PHPMailerAutoload.php';
include "conn.php";

date_default_timezone_set("Asia/Jakarta");
$id = 1;
$to = 'receiver@email.com';
$subject = 'Test';

if(isset($_POST['submit'])){
$attachment_name = $_FILES['attachment']['name'];
$attachment_type = $_FILES['attachment']['type'];
$attachment = $_FILES['attachment']['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("Failed"); </script>';
} else {
    echo '<script>alert("Success"); </script>';
}
}
?>

我的問題是,當script.js包含在索引中時,文件無法顯示在電子郵件附件中。 但是,當從索引中刪除script.js時,文件可以顯示在電子郵件附件中。

有什么解決辦法嗎?

您沒有提到您使用的是哪個文件上傳插件,但是我所使用的全部都是用來將文件上傳到某些服務器端回調中的,並且不將數據添加到表單本身中。 https://github.com/blueimp/jQuery-File-Upload/wiki/Options#add

您要做的是使用單獨的腳本處理上傳,例如返回帶有文件信息的json。

然后在Submit方法的成功回調中,將所需的數據添加到表單中,以便可以將其提交到發送電子郵件的腳本中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM