2017-10-06 22 views
0

私は、ユーザーが他のユーザーのプロフィールページに画像をアップロードするプロジェクトに取り組んでいます。アップロードとメール送信にも成功しましたが、1回のアップロードで複数のファイルがある場合は、複数のメールを送信します。Dropzone JSで複数のファイルをアップロードした後に通知を送信する

$sendmail = true; 

if(!empty($_FILES)){ 

$team_id = $_GET['param1']; 
$user_id = $_GET['param2']; 
$id = $_GET['param3']; 

$sql = "SELECT * FROM team where team_id = '$team_id'" ; 
$sql_result = mysqli_query($conn,$sql) or die ('request "Could not execute SQL query" '.$sql); 
while ($row = mysqli_fetch_assoc($sql_result)){ 
    $abcd = $row; 
} 

$targetDir = "../user_images/"; 
$fileName = $_FILES['file']['name']; 
$fileNamex = substr($fileName, -3); 
$fileName = rand(1000,100000).md5($fileName).'_'.$fileName; 
$targetFile = $targetDir.$fileName; 

if(move_uploaded_file($_FILES['file']['tmp_name'] , $targetFile)){ 
    mysqli_query($conn, "INSERT INTO gallery (team_id , user_id , id , userPic, token) VALUES('$team_id','$user_id','$id','$fileName','0')") or die(mysqli_error($conn)); 

    if($sendmail === true){ 
     $htmlContent = file_get_contents ("../email_template_header.php"); 
     $registerURL = $siteURL.'/register/'; 
     if($abcd['claimed'] == '1'){ 
      $htmlContent .= "New image(s) has been uploaded to your business. Please <a href='$registerURL'>login</a> and approve them"; 
     } 
     else{ 
      $htmlContent .= "New image(s) has been uploaded to your business. Please <a href='$registerURL'>register</a> to claim your business"; 
     } 
     $htmlContent .= file_get_contents ("../email_template_footer.php"); 

     $to = $abcd['b_email']; 

     require '../PHPMailerAutoload.php'; 

     $mail = new PHPMailer; 
     $mail->isSMTP(); 
     $mail->Host = 'localhost'; 
     $mail->SMTPAuth = false; 
     $mail->SMTPSecure = 'tls'; 
     $mail->Port = 25; 
     $mail->setFrom('[email protected]', 'ABC'); 
     $mail->addAddress($to); 
     $mail->isHTML(true); 
     $mail->Subject = 'New Image Uploaded'; 
     $mail->Body = $htmlContent; 
     $mail->send(); 
     $mail->clearAddresses(); 

     $sendmail = false; 
    } 
} 
} 

完全なコードは、すべてのファイルに対して実行されているように、これは動作しません。私は、ファイルがあるかどうかをインデックスフラグの助けを借りてチェックしたことができるように、何のループがhttp://www.dropzonejs.com/上のデフォルトの例でもありませんアップロードされたかどうか。どんな助けもありがとうございます。

おかげ

答えて

1
Dropzone.options.filedrop = { 
    init: function() { 
    this.on("complete", function (file) { 
     if (this.getUploadingFiles().length === 0 && this.getQueuedFiles().length === 0) { 
     doSomething(); 
     } 
    }); 
    } 
}; 
+0

doSomethingの()は、PHPの関数になることができますか?または私は自分の関数にajax呼び出しを行う必要があります –

+0

あなたはあなたの電子メール送信関数で置き換える必要があるので、ここでsendコマンドを呼び出す必要があります。 –

+0

doSomething()をconsole.log( 'success')に置き換えても、コンソールに何も表示されません...ファイルアップロード用のPHPコードを削除する必要がありますか? –

関連する問題