Я никогда не касался PHP, но был поставлен задачей фиксации коды стажера .. ВОтправка вложений (ы) в электронной почте
Я пытаюсь прикрепить файл загружается на электронную почту, я представляемая. Электронная почта отправляется, но без файла. Я использую PHPMailerAutoUpload.php (находится в GitHub).
Вот код, который я использую.
Приставка сохраняются через move_uploaded_file
move_uploaded_file($resume['tmp_name'] , $up_dir .basename($random_var . '_wse_' . $resume['name']))
Примечание: Я закомментировал функцию move_uploaded_file
, чтобы убедиться, что я не избавившись от привязанности.
require_once('phpmailer/PHPMailerAutoload.php');
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->SMTPAuth = false;
$mail->Host = 'oursmtp';
$mail->Port = 25;
$mail->setFrom($_POST['E-mail'] , $_POST['first_name'] . " " . $_POST['last_name']);
$mail->addAddress('[email protected]');
$mail->Subject = "Test" . @date('M/D/Y');
$mail->msgHTML($msgDoc);
if (isset($_FILES['uploaded_file']) &&
$_FILES['uploaded_file']['error'] == UPLOAD_ERR_OK) {
$mail->AddAttachment($_FILES['uploaded_file']['tmp_name'],
$_FILES['uploaded_file']['name']);
}
if (!$mail->send()) {
$mailError = $mail->ErrorInfo;
$outcomeArr = array(
'outcome'=>'failure',
'message'=>'Error' . $mailError
);
echo json_encode($outcomeArr);
exit();
} else {
// success
$outcomeArr = array(
'outcome'=>'success',
'message'=>'Thank you'
);
echo json_encode($outcomeArr);
}
Из того, что я прочитал, $_FILES
это временное хранилище для загрузки файлов в PHP. С помощью этого кода отправляется электронное письмо, но без вложения (только ссылка на местоположение загруженного файла).
Я пробовал следовать this, но он не работает для меня.
Хорошо. Теперь я вижу, что это говорит «Нет загруженного файла» .. Хм. Это странно. Когда я использовал метод move_uploaded_file() ', он работает, поэтому там должен быть * файл. –
Следует отметить, что бит 'uploaded_file' в' $ _FILES ['uploaded_file'] 'не является статическим значением, это имя поля ввода файла в форме загрузки. В исходном, неизмененном сценарии, как определяется '$ resume'? Это должно иметь правильное имя поля/индекс массива. – Sammitch
Определяется как 'Foreach ($ _ FILES as $ resume):' –