2017-12-19 8 views
0

내 문의 양식이 정상적으로 작동하지만 문의 양식을 사용하여 업로드 된 파일을 가져올 수 없습니다. 여기에 HTML 코드;PHPMailer 파일 업로드가 작동하지 않습니다.

<form id="contact_form" method="post" action="php/mail-advanced.php" enctype="multipart/form-data"> 
<input type="file" name="file" id="file" multiple /> 
<label for="file"></label> 
<button type="submit" id="submit">SEND MESSAGE</button></form> 

그리고이 코드는 php/mail-advanced.php 파일에 있습니다.

<?php 

date_default_timezone_set('Etc/UTC'); 
require 'PHPMailer/PHPMailerAutoload.php'; 

$mail = new PHPMailer; 
$mail->isSMTP(); 
$mail->SMTPDebug = 2; 
$mail->Debugoutput = 'html'; 
$mail->Host = "smtp.example.com"; 
$mail->Port = 587; 
$mail->SMTPAuth = true; 
$mail->Username = "[email protected]"; 
$mail->Password = "pass"; 
$mail->setFrom('[email protected]', 'Example Message'); 
$mail->addReplyTo($email); 
$mail->addAddress('[email protected]', 'Example Message'); 
$mail->Subject = $subject; 
$mail->addAttachment($_FILES['file']); 

if (!$mail->send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
    echo "Message sent!"; 
} 

어떻게하면 PHPMailer에서 파일을 업로드 할 수 있습니까? 감사!

+0

$ _FILES 배열을 다시 확인하십시오. – nogad

+0

적절하고 안전하게 수행하십시오. [PHPMailer와 함께 제공되는 파일 업로드 예제] (https://github.com/PHPMailer/PHPMailer/blob/master/examples/send_file_upload.phps)를 따르십시오. – Synchro

답변

-1

PHP에서 파일의 임시 이름을 전달해야합니다. 기본적으로 실제로 업로드하는 것과 같습니다.

$mail->AddAttachment($_FILES['file']['tmp_name'], $_FILES['file']['name']); 
+0

안전하지 않습니다. [the docs] (http://php.net/manual/en/features.file-upload.post-method.php)를 읽으십시오. – Synchro

+0

나는 안전하다고 말하지 않았고, 그의 질문에 바로 대답했다. –

관련 문제