0

Я показываю файлы перед отправкой по электронной почте в виде вложений. Я использую этот скрипт для отображения файловНесколько загрузок файлов в качестве вложений электронной почты

$(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 = '[email protected]'; 
$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>'; 
} 
} 
?> 

Моя проблема, когда сценарий. js включен в индекс, файлы не могут появляться в вложениях электронной почты. Но когда script.js удаляется из индекса, файлы могут отображаться в вложениях электронной почты.

Любое решение для этого?

+1

где находится ваш почтовый код? –

+0

@AmitRay: Я добавил – Zhumpex

+0

Можете ли вы загрузить файл upload.php, поскольку это файл, в котором отправляется форма. вы также можете использовать pastebin.com для вставки кода. После вставки просто отправьте мне ссылку. Если данные полны, то только их легко диагностировать. –

ответ

0

Вы не указали, какой плагин для загрузки файлов вы используете, но все, что я использовал, обрабатывает загрузку файла на обратный вызов на стороне сервера и не добавляет данные в форму. https://github.com/blueimp/jQuery-File-Upload/wiki/Options#add

Что вам нужно сделать, так это обработать загрузку в отдельном скрипте и, например, вернуть json с информацией о файле.

Тогда в успех обратного вызова метода представить добавить необходимые вам данные в форму, так что вы можете представить его в сценарий, который отправляет электронную почту

Смежные вопросы