我在通过电子邮件作为附件发送文件之前显示文件。我用这个脚本来显示文件
$(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时,文件可以出现在电子邮件附件中。
对此有何解决方案?
答案 0 :(得分:0)
你没有提到你正在使用哪个文件上传插件,但是我用过的所有内容都处理了将文件上传到某个服务器端的回调,并且没有将数据添加到表单本身。 https://github.com/blueimp/jQuery-File-Upload/wiki/Options#add
您需要做的是在单独的脚本中处理上传,例如返回带有文件信息的json。
然后在submit方法的成功回调中,将所需的数据添加到表单中,以便将其提交给发送电子邮件的脚本