Получение имени файла для прикрепления к письму с помощью SwiftMailer и PHP - PullRequest
4 голосов
/ 20 июля 2010

Я задал вопрос вчера, получил совет и использовал его, но по какой-то причине он не работает. Итак, мне нужно получить имя файла, который был загружен на мой сервер из HTML-формы пользователем. Мне нужно, чтобы этот файл был прикреплен к электронному письму, которое должно быть отправлено PHP / SwiftMailer. Вот мой код, часть загрузки файла:

    //File upload

// Where the file is going to be placed 
$target_path = "uploads/";

// Add the original filename to our target path.  
//Result is "uploads/filename.extension" 
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}   

//End of file upload

Это часть прикрепления файла:

//Create the attachment
$attachment = Swift_Attachment::fromPath($_FILES['uploadedfile']['tmp_name']);

Почему он не получает файл с сервера? Вот сообщение об ошибке, и похоже, что оно пытается найти файл в неправильном каталоге:

Предупреждение: fopen (/ tmp / phpHJdw0H) [function.fopen]: не удалось открыть поток: нет такого файла или каталога в /home/myserver/mydomain.com/Hawaii/html/swift-mailer/lib/classes/Swift/ByteStream/FileByteStream.php по линии 131 Неустранимая ошибка: необработанное исключение «Swift_IoException» с сообщением «Не удается открыть файл для чтения [/ tmp / phpHJdw0H]» в /home/myserver/mydomain.com/Hawaii/html/swift-mailer/lib/classes/Swift/ByteStream/ FileByteStream.php: 133 Трассировка стека: # 0
и т.д.

Спасибо!

1 Ответ

5 голосов
/ 20 июля 2010

Использование:

$attachment = Swift_Attachment::fromPath($target_path);

Это потому, что вы переместили файл из его временного расположения, $_FILES['uploadedfile']['tmp_name'] возвращает путь до того, как вы переместили файл, используя move_uploaded_file . Это предполагает, что $target_path находится в пределах области действия кода быстрой отправки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...