2010-08-02 3 views
2

PHP отправка почтовых вложений

Я нашел post о добавлении вложений в сообщение. Вопрос в том, как подключить загруженный файл к этой функции? Что мне нужно пройти?


UPD:

echo '<pre>'; 
print_r($_FILES); 
echo '</pre>'; 

$uploads_dir = '/uploads'; // It has need rights 

$tmp_name = $_FILES["vac_file"]["tmp_name"]; 
$res = is_uploaded_file($tmp_name); // This is true 
$name = $_FILES["vac_file"]["name"]; 

move_uploaded_file($tmp_name, "$uploads_dir/$name"); 
echo '$tmp_name: '. $tmp_name . '; $name: ' . $name; 

Array 
(
    [vac_file] => Array 
     (
      [name] => LFS.desktop 
      [type] => application/octet-stream 
      [tmp_name] => /tmp/phpV417nF 
      [error] => 0 
      [size] => 226 
     ) 

) 

yeah! 
Warning: move_uploaded_file(/uploads/LFS.desktop): failed to open stream: No such file or directory in /srv/http/vacancies_attachment.php on line 47 Warning: move_uploaded_file(): Unable to move '/tmp/phpV417nF' to '/uploads/LFS.desktop' in /srv/http/vacancies_attachment.php on line 47 $tmp_name: /tmp/phpV417nF; $name: LFS.desktop 

ответ

3

Использование move_uploaded_file() переместить файл во временную папку; прикрепите его к почте оттуда и удалите его впоследствии (или сохраните, что бы вы ни делали).

Подробнее см. На странице PHP manual on file uploads.

+0

Я пытался сделать это и получил ошибку. Не могли бы вы посмотреть обновленный пост? – Ockonal

+0

@Ockonal вы уверены, что '/ uploads' существует? В корневом каталоге? –

+0

О, я забыл о точке на пути. «./uploads» отлично работает. Спасибо за совет. – Ockonal

3

Ваше полное решение должно выглядеть следующим образом:

1) HTML

<form method="post" action="myupload.php"> 
<input type="file" name="uploaded_file" /> 
<input type="submit" /> 
</form> 

2) myupload.php

<?php 
$uploads_dir = '/uploads'; 
foreach ($_FILES["uploaded_file"]["error"] as $key => $error) { 
    if ($error == UPLOAD_ERR_OK) { 
     $tmp_name = $_FILES["uploaded_file"]["tmp_name"][$key]; 
     $name = $_FILES["uploaded_file"]["name"][$key]; 
     move_uploaded_file($tmp_name, "$uploads_dir/$name"); 
    } 
} 
?> 

http://php.net/manual/en/function.move-uploaded-file.php Взятые из

+0

Код для размножения файлов. Я переписал его для моих нужд. Не могли бы вы посмотреть обновленный пост? – Ockonal

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