2016-10-14 2 views
4

Я создал php send email script для отправки pdf через php mailer вместе с вложениями, которые я не могу отправить вложения, когда я отправляю электронное письмо, вложенный файл поврежден, все в порядке, пожалуйста, посмотрите на мой код и дайте мне знать, что ошибка, которую я делаю, поэтому вложения не посылать правильноpdf не отправка как приложение

Вот мой HTML

<form method="POST" action="details.php?id=<?php echo $_GET['id']; ?>" enctype="multipart/form-data"> 
    <div class="col col_center"> 
     <input name="first_name" class="firstname text_input" type="text" placeholder="First Name"> 
    </div> 
    <div class="col col_center"> 
     <input name="last_name" class="lastname text_input" type="text" placeholder="Last Name"> 
    </div> 
    <div class="col col_center"> 
     <input name="email" class="email_address text_input" type="email" placeholder="Email Address"> 
    </div> 
    <div class="col col_center"> 
     <input name="phone" class="phone text_input" type="tel" placeholder="Phone (with country code)"> 
    </div> 
    <input type="hidden" name="title" value="<?php echo $dt['job_title']; ?>" /> 
    <div class="btn_row"> 
     <input type="file" value="Attach CV" class="button blue" name="resume" style="width:auto;"> 
    </div> 
    <div class="btn_row"> 
     <input type="submit" value="Send" name="submit_resume" class="button" style="width:auto;"> 
    </div> 
</form> 

Это мой файл PHP

$path  = "./uploads/"; 
    $head  = $_FILES["resume"]["name"]; 
    $headtype = $_FILES["resume"]["type"]; 
    $headtemp = $_FILES["resume"]["tmp_name"]; 

    move_uploaded_file($headtemp, $path.$head); 

$mail = new PHPMailer; 
    $client_email = $dt[3]; 
    $mail->setFrom('[email protected]', 'No reply'); 
    $mail->addAddress("$client_email", 'Xpertius'); 
    $mail->Subject = "Thank You For Appling - '".$job_title."'"; 
    $mail->msgHTML($htmlbody); 
    $uploadfile1 = tempnam(sys_get_temp_dir(), sha1($_FILES['resume']['name'])); 
    move_uploaded_file($_FILES['resume']['tmp_name'], $uploadfile1); 
    $mail->addAttachment($uploadfile1, $head); 

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

+0

проверка на наличие ошибок. Вы также должны опубликовать html-форму для этого. –

+0

okay Я отправляю html no erros, дающий emall send успешно, но вложенный файл не работает –

+0

У меня есть мои вопросы, пожалуйста, посмотрите –

ответ

2

Вы пытаетесь переместить загруженный файл:

move_uploaded_file($_FILES['resume']['tmp_name'], $uploadfile1); 

Но ты уже переместил его в:

move_uploaded_file($headtemp, $path.$head); 

Скорее всего, файл вы пытаетесь прикрепить пуст (как это уже существует нет), проверьте размер в электронной почте, или проверить перед установкой, если он все еще существует.

Таким образом, вы должны определить $ uploadfile1 как:

$uploadfile1 = $path.$head; 

вместо вашего второго move_uploaded_file.

+0

Размер приложения в электронной почте 0kb –

+0

Вы изменили имя файла? Я думал, что это может быть проблема ... –

0

Попробуйте

$mail->AddAttachment($_FILES["resume"]['tmp_name'], 
        $_FILES["resume"]['name']); 

также проверить разрешение папки, куда вы хотите переместить файл, он должен быть доступен для записи

+0

Файл уже перемещен, поэтому он не будет доступен в '$ _FILES ['resume'] ['tmp_name']'. –

+0

, то сделайте это перед перемещением –

+0

Нет, не надо, это риск для безопасности, как говорят документы PHP; вы должны сначала использовать 'move_uploaded_file'. – Synchro

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